proactive outreach manager and recorder integration …

55
Proactive Outreach Manager and Recorder Integration Release 3.0.5 Issue 1 February 2017

Upload: others

Post on 27-Nov-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Proactive Outreach Manager and Recorder Integration

Release 305 Issue 1

February 2017

AVAYA SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT

REVISED October 12 2015

Using this document signifies your assent to the following SDK License Terms READ THIS CAREFULLY BEFORE ELECTRONICALLY ACCESSING OR USING THIS PROPRIETARY PRODUCT THIS IS A LEGAL AGREEMENT (ldquoAGREEMENTrdquo) BETWEEN YOU INDIVIDUALLY ANDOR THE LEGAL ENTITY FOR WHOM YOU ARE OPENING INSTALLING DOWNLOADING COPYING OR OTHERWISE USING THE SDK (COLLECTIVELY AS REFERENCED HEREIN ldquoYOUrdquo ldquoYOURrdquo OR ldquoLICENSEErdquo) AND AVAYA INC OR ANY AVAYA AFFILIATE (COLLECTIVELY ldquoAVAYArdquo) IF YOU ARE ACCEPTING THE TERMS AND CONDITIONS OF THIS AGREEMENT ON BEHALF OF A LEGAL ENTITY YOU REPRESENT AND WARRANT THAT YOU HAVE FULL LEGAL AUTHORITY TO ACCEPT ON BEHALF OF AND BIND SUCH LEGAL ENTITY TO THIS AGREEMENT BY OPENING THE MEDIA CONTAINER BY INSTALLING DOWNLOADING COPYING OR OTHERWISE USING THE AVAYA SOFTWARE DEVELOPMENT KIT (ldquoSDKrdquo) OR AUTHORIZING OTHERS TO DO SO YOU SIGNIFY THAT YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT IF YOU DO NOT HAVE SUCH AUTHORITY OR DO NOT WISH TO BE BOUND BY THE TERMS OF THIS AGREEMENT SELECT THE DECLINE BUTTON AT THE END OF THE TERMS OF THIS AGREEMENT OR THE EQUIVALENT OPTION 10 DEFINITIONS 11 ldquoAffiliatesrdquo means any entity that is directly or indirectly controlling controlled by or under common control with Avaya Inc For purposes of this definition ldquocontrolrdquo means the power to direct the management and policies of such party directly or indirectly whether through ownership of voting securities by contract or otherwise and the terms ldquocontrollingrdquo and ldquocontrolledrdquo have meanings correlative to the foregoing 12 ldquoAvaya Software Development Kitrdquo or ldquoSDKrdquo means Avaya technology which may include object code Client Libraries Specification Documents Software libraries application programming interfaces (ldquoAPIrdquo) Software tools Sample Application Code published specifications and Documentation 13 ldquoClient Librariesrdquo mean any enabler code specifically designated as such and included in a SDK Client Libraries may also be referred to as ldquoDLLsrdquo and represent elements of the SDK required at runtime to communicate with Avaya products or other SDK elements 14 ldquoChange In Controlrdquo shall be deemed to have occurred if any person entity or group comes to own or control directly or indirectly beneficially or of record voting securities (or any other form of controlling interest) which represent more than fifty percent (50) of the total voting power of or to Licensee 15 ldquoDerivative Work(s)rdquo means (a) for copyrightable or copyrighted material any translation (including translation into other computer languages) port compiling of Source Code into object code combination with a pre-existing work modification correction addition extension upgrade improvement compilation abridgment or other form in which an existing work may be recast transformed or adapted or which would otherwise constitute a derivative work under the United States Copyright Act (b) for patentable or patented material any changes additions modifications or improvements thereon and (c) for material which is protected by trade secret any new material derived from such existing trade secret material including new material which may be protected by copyright patent andor trade secret Permitted Modifications will be considered Derivative Works 16 ldquoDocumentationrdquo includes but is not limited to programmer guides CDs manuals materials and information appropriate or necessary for use in connection with the SDK Documentation may be provided in machine-readable electronic or hard copy form 17 ldquoIntellectual Propertyrdquo means any and all tangible and intangible (i) rights associated with works of authorship throughout the world including but not limited to copyrights neighboring rights moral rights and mask works (ii) trademark

and trade name rights and similar rights (iii) trade secret rights (iv) patents algorithms designs and other industrial property rights (v) all other intellectual and industrial property rights (of every kind and nature throughout the world and however designated) whether arising by operation of law contract license or otherwise and (vi) all registrations initial applications renewals extensions continuations divisions or reissues thereof now or hereafter in force (including any rights in any of the foregoing) 18 ldquoOpen Source Software or OSS is as defined by the Open Source Initiative (ldquoOSIrdquo) and is software licensed under an OSI approved license as set forth at httpwwwopensourceorgdocsosd (or such successor site as designated by OSI) 19 ldquoPermitted Modification(s)rdquo means Licenseersquos modifications of the Source Code as needed to create applications interfaces workflows or processes for use with Avaya products 110 ldquoSpecification Documentrdquo means any notes or similar instructions in hard copy or machine readable form including any technical interface andor interoperability specifications that define the requirements and conditions for connection to andor interoperability with Avaya products systems and solutions 111 ldquoSource Coderdquo means the high-level statement version of the Sample Application Code or Software written in the source language used by programmers and includes one or more programs Source Code programs may include one or more files but is not limited to user interface markup language (mxml) action script (as) precompiled Flash code (swc) java script (js) hypertext markup language (html) active server pages (asp) C or C Net source code (cs) java source code (java) java server pages (jsp) java archives (jar) graphic interchange format (gif) cascading style sheet (css) and extensible markup language (xml) files Source Code files may also be provided in binary object format may require explicit compilation into binary object format for execution or may be interpreted natively using a separate application execution program or platform 112 ldquoSample Application Coderdquo means Source Code andor executable Software provided for the purposes of demonstrating functionality of an Avaya product through the Avaya Software Development Kit 113 ldquoSoftwarerdquo means Avayarsquos intangible information constituting one or more computer or apparatus programs including but not limited to Avaya software in Source Code or in machine-readable compiled object code form 20 LICENSE GRANT 21 SDK License

A Provided Licensee pays to Avaya the applicable license fee (if any) Avaya hereby grants Licensee a limited non-exclusive non-transferable license (without the right to sublicense except as set forth in 21B(iii)) to use the SDK (including Sample Application Code) solely for the purpose of Licensees internal development efforts to develop applications interfaces value-added services andor solutions workflows or processes to work in conjunction with Avaya products provided however that Licensee shall have no right to distribute license (whether or not through multiple tiers) or otherwise transfer the SDK to any third party or incorporate the SDK in any software product or technology Avaya further grants Licensee the right if the Licensee so chooses to package Client Libraries for redistribution with Licenseersquos complementary applications that have been developed using this SDK subject to the terms and conditions set forth herein Where SDK includes Specification Document(s) Licensee is granted a license to use such Specification Documents solely to enable Licenseersquos products services and application solutions to exchange messages and signals with Avaya products systems and solutions to which the Specification Document(s) apply Avayarsquos support obligations for the SDK Sample Application Code and any Derivative Works are set forth in Section 4 of this Agreement B The foregoing license to use Sample Application Code is contingent upon the following (i) Licensee may use and modify the Sample Application Code Specification Documents and Documentation solely for internal development of applications interfaces

workflows or processes for use with Avaya products integration of such applications interfaces workflows and processes with Avaya products and interoperability testing of the foregoing with Avaya products (ii) Licensee must ensure that the modifications made to the Sample Application Code as permitted in clause (i) of this Section 21B are compatible andor interoperable with Avaya products andor integrated therewith (iii) Licensee may compile or otherwise prepare for distribution the Sample Application Code with Permitted Modifications into an object code or other suitable program format for distribution provided that such sublicense is subject to an end user license agreement that is consistent with the terms of this Agreement and if applicable the Avaya DevConnect Program Agreement and is equally as protective as Licenseersquos standard software license terms but in no event shall the standard of care be less than a reasonable degree of care Under no circumstances shall Licensee enable the use or activation of any of Avayarsquos Intellectual Property by an end user without such end user having acquired the additional necessary licenses to Avaya Intellectual Property Avayarsquos support obligations for the SDK Sample Application Code and any Derivative Works are set forth in Section 4 of this Agreement C Except as expressly authorized by this Agreement and unless otherwise permitted by the applicable law Licensee shall not (i) translate publish or display the SDK Specification Documents or Documentation or any copy or part thereof or (ii) use modify or distribute the redistributable Client Libraries in any manner that causes any portion of the redistributable Client Libraries that is not already subject to an OSS license to become subject to the terms of any OSS license D Licensee agrees that it is licensed to use the SDK only in connection with Avaya products (and if applicable in connection with services provided under the Avaya DevConnect Program Agreement) In the event of any conflict between the terms and conditions of this Agreement and the Avaya DevConnect Program Agreement (if applicable) the terms and conditions of the Avaya DevConnect Program Agreement shall prevail E With respect to Software that contains elements provided by third party suppliers Licensee may install and use the Software in accordance with the terms and conditions of the applicable license agreements such as ldquoshrinkwraprdquo or ldquoclick-throughrdquo licenses accompanying or applicable to the Software F Avaya shall have the right at its cost and expense to inspect andor audit (i) by remote polling or other reasonable electronic means at any time and (ii) in person during normal business hours and with reasonable notice Licenseersquos books records and accounts to determine Licenseersquos compliance with this Agreement In the event such inspection or audit uncovers non-compliance with this Agreement then without prejudice to Avayarsquos termination rights hereunder Licensee shall promptly pay Avaya any applicable license fees Licensee agrees to keep a current record of the location of the SDK

22 No Standalone Product Nothing in this Agreement authorizes

or grants Licensee any rights to distribute or otherwise make available

to a third party the SDK in whole or in part or any Derivative Work

in source or object code format on a standalone basis other than the

modifications permitted in Section 21B of this Agreement 23 Proprietary Notices Licensee shall not remove any copyright trade mark or other proprietary notices incorporated in the copies of the SDK Sample Application Code and redistributable files in Licenseersquos possession or control or any modifications thereto Redistributions in binary form or other suitable program format for distribution to the extent expressly permitted must also reproduce Avayarsquos copyright trademarks or other proprietary notices as incorporated in the SDK in any associated Documentation or ldquosplash screensrdquo that display Licensee copyright notices 24 Third-Party Components You acknowledge certain software programs or portions thereof included in the SDK may contain software distributed under third party agreements (ldquoThird Party Componentsrdquo) which may contain terms that

expand or limit rights to use certain portions of the SDK (ldquoThird Party Termsrdquo) Information identifying the copyright holders of the Third Party Components and the Third Party Terms that apply is available in the attached Schedule 1 (if any) SDK Documentation or on Avayarsquos web site at httpsupportavayacomCopyright (or such successor site as designated by Avaya) The open source software license terms provided as Third Party Terms are consistent with the license rights granted in this Agreement and may contain additional rights benefiting You such as modification and distribution of the open source software The Third Party Terms shall take precedence over this Agreement solely with respect to the applicable Third Party Components to the extent that this Agreement imposes greater restrictions on You than the applicable Third Party Terms Licensee is solely responsible for procuring any necessary licenses for Third Party Components including payment of licensing royalties or other amounts to third parties for the use thereof 25 Copies of SDK Licensee may copy the SDK only as necessary to exercise its rights hereunder provided however that Licensee may also make one (1) copy for back-up purposes and any reproduction of the SDK (including derivatives thereof) either in whole or in part shall include the Avaya copyright notice that was provided in the SDK 26 No Reverse Engineering Licensee shall have no rights to any Source Code for any of the software in the SDK except for the explicit rights to use the Source Code as provided to Licensee hereunder Licensee agrees that it shall not cause or permit the disassembly decompilation or reverse engineering of the Software Notwithstanding the foregoing if the SDK is rightfully located in a member state of the European Union and Licensee needs information about the Software in the SDK in order to achieve interoperability of an independently created software program with the Software in the SDK Licensee will first request such information from Avaya Avaya may charge Licensee a reasonable fee for the provision of such information If Avaya refuses to make such information available then Licensee may take steps such as reverse assembly or reverse compilation to the extent necessary solely in order to achieve interoperability of the Software in the SDK with an independently created software program To the extent that the Licensee is expressly permitted by applicable mandatory law to undertake any of the activities listed in this section Licensee will not exercise those rights until Licensee has given Avaya twenty (20) days written notice of its intent to exercise any such rights 27 Responsibility for Development Tools Licensee acknowledges that effective utilization of the SDK may require the use of a development tool compiler and other software and technology of third parties which may be incorporated in the SDK pursuant to Section 24 Licensee is solely responsible for procuring such third party software and technology and the necessary licenses including payment of licensing royalties or other amounts to third parties for the use thereof 28 US Government End Users The SDK shall be classified as commercial computer software and the Documentation is classified as commercial computer software documentation or commercial items pursuant to FAR 12212 or DFAR 2277202 as applicable Any use modification reproduction release performance display or disclosure of the SDK or Documentation by the Government of the United States shall be governed solely by the terms of the Agreement and shall be prohibited except to the extent expressly permitted by the terms of the Agreement 29 Limitation of Rights No right is granted to Licensee to sublicense its rights hereunder All rights not expressly granted are reserved by Avaya and except as expressly set forth herein no license is granted by Avaya under this Agreement directly by implication estoppel or otherwise under any patent copyright trade secret or trademark or other Intellectual Property right of Avaya Nothing herein shall be deemed to authorize Licensee to use Avayas trademarks or trade names in Licensees advertising marketing promotional sales or related materials 210 Nonassertion by Licensee Licensee agrees not to assert any patent rights related to the SDK or applications developed using the SDK against Avaya Avayas distributors Avaya customers or other licensees of the SDK for making using selling offering for sale or importing any products or technology developed using the SDK

211 Avaya Independent Development Licensee understands and agrees that Avaya or its Affiliates may acquire license develop for itself or have others develop for it and market andor distribute similar software to that which Licensee may develop In absence of a separate written agreement to the contrary Avaya or its Affiliates will be free to use any information Licensee provides including problem reports or enhancement requests to Avaya for any purpose subject to any applicable patents or copyrights 212 Feedback and Support Licensee agrees to provide any comments and suggestions regarding the performance of the SDK (a) if applicable on the developer forum of the DevConnect Program on wwwavayacomdevconnect or (b) via the process otherwise indicated by Avaya with respect to the SDK Avaya agrees to monitor the applicable forum but is under no obligation to implement any of the suggestions andor proposals or be required to respond to any questions asked in the forum Self-support tools are available via the Avaya DevConnect programrsquos portal and requires self registration Licensee hereby assigns to Avaya all right title and interest in and to Feedback provided to Avaya 213 Fees and Taxes To the extent that fees are associated with the license of the SDK Licensee agrees to pay to Avaya or pay directly to the applicable government or taxing authority if requested by Avaya all taxes and charges including without limitation penalties and interest which may be imposed by any federal state or local governmental or taxing authority arising hereunder excluding however all taxes computed upon Avayarsquos net income If You move any Software including the SDK and as a result of such move a jurisdiction imposes a duty tax levy or fee (including withholding taxes fees customs or other duties for the import and export of any such Software) then You are solely liable for and agree to pay any such duty taxes levy or other fees 214 No Endorsement Neither the name Avaya its Affiliates nor the names of contributors may be used to endorse or promote products derived from the Avaya SDK without specific prior written permission from Avaya 215 High Risk Activities The Avaya SDK is not fault-tolerant and is not designed manufactured or intended for use or resale as on-line control equipment or in hazardous environments requiring failsafe performance such as in the operation of nuclear facilities aircraft navigation or aircraft communications systems mass transit air traffic control medical or direct life support machines dedicated emergency call handling systems or weapons systems in which the failure of the Avaya SDK could lead directly to death personal injury or severe physical or environmental damage (high risk activities) If Licensee uses the Avaya SDK for high risk activities Licensee does so at Licenseersquos own risk and Licensee assumes all responsibility and liability for such use to the maximum extent such limitation or exclusion is permitted by applicable law Licensee agrees that Avaya and its suppliers will not be liable for any claims or damages arising from or related to use of the Avaya SDK for high risk activities to the maximum extent such limitation or exclusion is permitted by law 216 No Virus Licensee warrants that (i) the applications interfaces value-added services andor solutions workflows or processes Licensee develops using this SDK will not contain any computer program file that includes time code limitations disabling devices or any other mechanism which will prevent the Supplier Software from being functional at all times (collectively ldquoTime Bombsrdquo) and (ii) the applications interfaces value-added services andor solutions workflows or processes Licensee develops using this SDK will be free of computer viruses black boxes malware trapdoors and other mechanisms to allow remotehidden attacks or access through unauthorized computerized command and control and will not contain any other computer software routines designed to spy monitor traffic (network sniffers keyloggers) damage or erase such applications interfaces value-added services andor solutions workflows or processes developed using this SDK or data or any computer files or systems of Avaya its Affiliates andor end users (collectively ldquoVirusrdquo) In addition to any other remedies permitted in the Agreement if Licensee breaches its warranties under this Section Licensee will at its expense take remedial action to eliminate any Time Bombs andor Viruses and prevent re-occurrence (including implementing appropriate processes to prevent further occurrences) as well

as provide prompt reasonable assistance to Avaya to materially reduce the effects of the Time Bomb andor Virus 217 Disclaimer Any software security feature is not a guaranty against malicious code deleterious routines and other techniques and tools employed by computer ldquohackersrdquo and other third parties to create security exposures Compromised passwords represent a major security risk Avaya encourages You to create strong passwords using three different character types change Your password regularly and refrain from using the same password regularly You must treat such information as confidential You agree to notify Avaya immediately upon becoming aware of any unauthorized use or breach of Your user name password account or subscription You are responsible for ensuring that Your networks and systems are adequately secured against unauthorized intrusion or attack and regularly back up of Your data and files in accordance with good computing practices 3 OWNERSHIP 31 As between Avaya and Licensee Avaya or its licensors shall own and retain all proprietary rights including all patent copyright trade secret trademark and other Intellectual Property rights in and to the SDK and any corrections bug fixes enhancements updates improvements or modifications thereto and Licensee hereby irrevocably transfers conveys and assigns to Avaya all of its right title and interest therein Avaya shall have the exclusive right to apply for or register any patents mask work rights copyrights and such other proprietary protections with respect thereto Licensee acknowledges that the license granted under this Agreement does not provide Licensee with title or ownership to the SDK but only a right of limited use under the terms and conditions of this Agreement 32 Grant Back License to Avaya Licensee hereby grants to Avaya an irrevocable perpetual non-exclusive sub-licensable royalty-free worldwide license under any and all of Licensees Intellectual Property rights related to any Permitted Modifications to use employ practice make have made sell andor otherwise exploit any and all Permitted Modifications 40 SUPPORT Avaya will not provide any support for the SDK provided under this Agreement or for any Derivative Works including without limitation modifications to the Source Code or applications built by Licensee using the SDK Notwithstanding the above limitations Avaya shall have no obligation to provide support for the use of the SDK or Licensees derivative application services or solutions which may or may not include redistributable Client Libraries or Sample Application Code to any third party to whom Licensee delivers such derivative applications services or solutions Avaya further will not provide fixes patches or repairs for any defects that might exist in the SDK or the Sample Application Code provided under this Agreement In the event that Licensee desires support services for the SDK and provided that Avaya offers such support services (in its sole discretion) Licensee will be required to enter into a Avaya DevConnect Program Agreement or any support agreement with Avaya Nothing herein shall be construed to require Avaya to provide support services or updates upgrades bug fixes or modifications to the SDK 50 CONFIDENTIALITY 51 Protection of Confidential Information Licensee shall take all reasonable measures to maintain the confidentiality of the SDK Specification Documents and other Avaya technical information obtained by it (collectively the ldquoConfidential Informationrdquo) and will not disclose the Confidential Information to any third party Licensee agrees at all times to protect and preserve the SDK in strict confidence and perpetually and shall not use such Confidential Information other than as expressly authorized by Avaya under this Agreement nor shall Licensee disclose any such Confidential Information to third parties without Avayas written consent Licensee further agrees to immediately return to Avaya all Confidential Information (including copies thereof) in Licensees possession custody or control upon termination of this Agreement at any time and for any reason The obligations of confidentiality shall not apply to information which (a) has entered the public domain except where such entry is the result of Licensees breach of this Agreement (b) prior to disclosure hereunder was already rightfully in Licensees possession (c) subsequent to disclosure hereunder is obtained by Licensee on a non-confidential basis from a third party who has the right to disclose such information

to the Licensee (d) is required to be disclosed pursuant to a court order so long as Avaya is given adequate notice and the ability to challenge such required disclosure 52 Press Releases Any press release or publication regarding this Agreement is subject to prior review and written approval of Avaya 60 NO WARRANTY The SDK and Documentation are provided ldquoAS-ISrdquo without any warranty whatsoever AVAYA SPECIFICALLY AND EXPRESSLY DISCLAIMS ANY WARRANTIES OR CONDITIONS STATUTORY OR OTHERWISE INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE NONINFRINGEMENT AND SATISFACTORY QUALITY AVAYA DOES NOT WARRANT THAT THE SDK AND DOCUMENTATION ARE SUITABLE FOR LICENSEES USE THAT THE SDK OR DOCUMENTATION ARE WITHOUT DEFECT OR ERROR THAT OPERATION WILL BE UNINTERRUPTED OR THAT DEFECTS WILL BE CORRECTED FURTHER AVAYA MAKES NO WARRANTY REGARDING THE RESULTS OF THE USE OF THE SDK AND DOCUMENTATION NEITHER AVAYA NOR ITS SUPPLIERS MAKE ANY WARRANTY EXPRESS OR IMPLIED THAT SECURITY THREATS AND VULNERABILITIES WILL BE DETECTED OR SOFTWARE WILL RENDER AN END USERrsquoS OR LICENSEErsquoS NETWORK OR PARTICULAR NETWORK ELEMENTS SAFE FROM INTRUSIONS AND OTHER SECURITY BREACHES 70 CONSEQUENTIAL DAMAGES WAIVER EXCEPT FOR PERSONAL INJURY CLAIMS AND WILLFUL MISCONDUCT AVAYA SHALL NOT BE LIABLE FOR ANY INCIDENTAL INDIRECT SPECIAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH ARISING OUT OF OR RELATING TO THIS AGREEMENT OR USE OF THE SDK OR FOR THE LOSS OR CORRUPTION OF DATA INFORMATION OF ANY KIND BUSINESS PROFITS OR OTHER COMMERCIAL LOSS HOWEVER CAUSED AND WHETHER OR NOT AVAYA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 80 LIMITATION OF LIABILITY EXCEPT FOR PERSONAL INJURY CLAIMS AND WILLFUL MISCONDUCT IN NO EVENT SHALL AVAYAS TOTAL LIABILITY TO LICENSEE IN CONNECTION WITH ARISING OUT OF OR RELATING TO THIS AGREEMENT EXCEED FIVE HUNDRED DOLLARS ($500) THE PARTIES AGREE THAT THE LIMITATIONS SPECIFIED IN THIS SECTION WILL APPLY EVEN IF ANY LIMITED REMEDY PROVIDED IN THIS AGREEMENT IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE 90 INDEMNIFICATION Licensee shall indemnify and hold harmless Avaya its Affiliates and their respective officers directors agents suppliers customers and employees from and against all claims damages losses liabilities costs expenses and fees (including fees of attorneys and other professionals) arising from or relating to Licenseersquos use of the SDK with other software such as operating systems and codecs and the direct or indirect distribution or sale of software Derivative Works or other products (including but not limited to applications interfaces and application programming interfaces) developed utilizing the SDK including but not limited to products liability claims and claims of infringement of third party Intellectual Property rights 100 TERM AND TERMINATION 101 This Agreement will continue through December 31

st of the

current calendar year The Agreement will automatically renew for one (1) year terms and run concurrently with Licenseersquos membership in the Avaya DevConnect Program if applicable unless terminated as specified in Section 102 or 103 below and if applicable provided Licensee is a member of the Avaya DevConnect Program in a good-standing as determined by Avaya at its sole discretion 102 Either party shall have the right to terminate the Agreement upon thirty (30) days written notice to the other party 103 Notwithstanding language to the contrary Avaya may terminate this Agreement immediately upon written notice to Licensee for breach of Section 2 (License Grant) Section 5 (Confidentiality) or Section 12 (Compliance with Laws) Avaya may also terminate this license by giving written notice if a

Change In Control should occur or if Licensee becomes insolvent or voluntary or involuntary proceedings by or against Licensee are instituted in bankruptcy or under any insolvency law or a receiver or custodian is appointed for Licensee or proceedings are instituted by or against Licensee for corporate reorganization or the dissolution of Licensee which proceedings if involuntary have not been dismissed within thirty (30) days after the date of filing or Licensee makes an assignment for the benefit of its creditors or substantially all of the assets of Licensee are seized or attached and not released within sixty (60) days thereafter or if Licensee has ceased or threatened to cease to do business in the regular course 104 Upon termination of this Agreement Licensee will immediately cease using the SDK Development Kit and Licensee agrees to destroy all adaptations or copies of the SDK and Documentation or return them to Avaya upon termination of this License 105 The rights and obligations of the parties contained in Sections 23 26 27 210 211 3 and 5 through 18 shall survive any expiration or termination of this Agreement 110 ASSIGNMENT Avaya may assign all or any part of its rights and obligations hereunder Licensee may not assign this Agreement or any interest or rights granted hereunder to any third party without the prior written consent of Avaya The term assign includes but is not limited to any transaction in which there is a Change In Control or reorganization of Licensee pursuant to a merger sale of assets or stock This Agreement shall terminate immediately upon occurrence of any prohibited assignment 120 COMPLIANCE WITH LAWS Licensee shall comply with all applicable laws and regulations including without limitation those applicable to data privacy intellectual property trade secret fraud music performance rights and the export or re-export of technology and will not export or re-export the SDK or any other technical information provided under this Agreement in any form in violation of the export control laws of the United States of America and of any other applicable country For more information on such export laws and regulations Licensee may refer to the resources provided in the websites maintained by the US Commerce Department the US State Department and the US Office of Foreign Assets Control 130 WAIVER The failure to assert any rights under this Agreement including but not limited to the right to terminate in the event of breach or default will not be deemed to constitute a waiver of the right to enforce each and every provision of this Agreement in accordance with their terms 140 SEVERABILITY If any provision of this Agreement is determined to be unenforceable or invalid this Agreement will not be rendered unenforceable or invalid as a whole and the provision will be changed and interpreted so as to best accomplish the objectives of the original provision within the limits of applicable law 150 GOVERNING LAW AND DISPUTE RESOLUTION This Agreement and any dispute claim or controversy arising out of or relating to this Agreement (Dispute) including without limitation those relating to the formation interpretation breach or termination of this Agreement or any issue regarding whether a Dispute is subject to arbitration under this Agreement will be governed by New York State laws excluding conflict of law principles and the United Nations Convention on Contracts for the International Sale of Goods Any Dispute shall be resolved in accordance with the following provisions The disputing party shall give the other party written notice of the Dispute The parties will attempt in good faith to resolve each Dispute within thirty (30) days or such other longer period as the parties may mutually agree following the delivery of such notice by negotiations between designated representatives of the parties who have dispute resolution authority If a Dispute that arose anywhere other than in the United States or is based upon an alleged breach committed anywhere other than in the United States cannot be settled under these procedures and within these timeframes it will be conclusively determined upon request of either party by a final and binding arbitration proceeding to be held in accordance with the Rules of Arbitration of the International Chamber of Commerce by a single arbitrator appointed by the parties or (failing agreement) by an arbitrator appointed by the President

of the International Chamber of Commerce (from time to time) except that if the aggregate claims cross claims and counterclaims by any one party against any or all other parties exceed One Million US Dollars at the time all claims including cross claims and counterclaims are filed the proceeding will be held in accordance with the Rules of Arbitration of the International Chamber of Commerce by a panel of three arbitrator(s) appointed in accordance with the Rules of Arbitration of the International Chamber of Commerce The arbitration will be conducted in the English language at a location agreed by the parties or (failing agreement) ordered by the arbitrator(s) The arbitrator(s) will have authority only to award compensatory damages within the scope of the limitations of this Agreement and will not award punitive or exemplary damages The arbitrator(s) will not have the authority to limit expand or otherwise modify the terms of this Agreement The ruling by the arbitrator(s) will be final and binding on the parties and may be entered in any court having jurisdiction over the parties or any of their assets The parties will evenly split the cost of the arbitrator(s) fees but each party will bear its own attorneys fees and other costs associated with the arbitration The parties their representatives other participants and the arbitrator(s) will hold the existence content and results of the arbitration in strict confidence to the fullest extent permitted by law Any disclosure of the existence content and results of the arbitration shall be as limited and narrowed as required to comply with the applicable law By way of illustration if the applicable law mandates the disclosure of the monetary amount of an arbitration award only the underlying opinion or rationale for that award may not be disclosed If a Dispute by one party against the other that arose in the United States or is based upon an alleged breach committed in the United States cannot be settled under the procedures and within the timeframe set forth above then either party may bring an action or proceeding solely in either the Supreme Court of the State of New York New York County or the United States District Court for the Southern District of New York Except as otherwise stated above with regard to arbitration of Disputes that arise anywhere other than in the United States or are based upon an alleged breach committed anywhere other than in the United States each party to this Agreement consents to the exclusive jurisdiction of those courts including their appellate courts for the purpose of all actions and proceedings The parties agree that the arbitration provision in this section may be enforced by injunction or other equitable order and no bond or security of any kind will be required with respect to any such injunction or order Nothing in this section will be construed to preclude either party from seeking provisional remedies including but not limited to temporary restraining orders and preliminary injunctions from any court of competent jurisdiction in order to protect its rights including its rights pending arbitration at any time In addition and notwithstanding the foregoing Avaya shall be entitled to take any necessary legal action at any time including without limitation seeking immediate injunctive relief from a court of competent jurisdiction in order to protect Avayas intellectual property and its confidential or proprietary information (including but not limited to trade secrets) 160 IMPORTEXPORT CONTROL Licensee is advised that the SDK is of US origin and subject to the US Export Administration Regulations (ldquoEARrdquo) The SDK also may be subject to applicable local country importexport laws and regulations Diversion contrary to US andor applicable local country law andor regulation is prohibited Licensee agrees not to directly or indirectly export re-export import download or transmit the SDK to any country end user or for any use that is contrary to applicable US andor local country regulation or statute (including but not limited to those countries embargoed by the US government) Licensee represents that any governmental agency has not issued sanctions against Licensee or otherwise suspended revoked or denied Licensees importexport privileges Licensee agrees not to use or transfer the SDK for any use relating to nuclear chemical or biological weapons or missile technology unless authorized by the US andor any applicable local government by regulation or specific written license Additionally Licensee is advised that the SDK may contain encryption algorithm or source code that may not be exported to government or military

end users without a license issued by the US Bureau of Industry and Security and any other countryrsquos governmental agencies where applicable 170 AGREEMENT IN ENGLISH The parties confirm that it is their wish that the Agreement as well as all other documents relating hereto including all notices have been and shall be drawn up in the English language only Les parties aux preacutesentes confirment leur volonteacute que cette convention de mecircme que tous les documents y compris tout avis qui sy rattachent soient reacutedigeacutes en langue anglaise 180 ENTIRE AGREEMENT This Agreement its exhibits and other agreements or documents referenced herein constitute the full and complete understanding and agreement between the parties and supersede all contemporaneous and prior understandings agreements (excluding the Avaya DevConnect Program Agreement) and representations relating to the subject matter hereof No modifications alterations or amendments shall be effective unless in writing signed by both parties to this Agreement 19 REDISTRIBUTABLE CLIENT FILES The list of SDK client files that can be redistributed if any are in the SDK in a file called Redistributabletxt

Table of Contents

Table of Figures 8 1 About this document 9

11 Scope of the document 9 12 Intended audience 10 13 Conventions used in the document 10 14 Related documents 10 15 Providing documentation feedback 10 16 Historical View 10

2 Architecture Overview 11 3 POM and Recorder Application Integration Design 14

31 Getting started 14 311 InstallUpgrade POM 14 312 Configure Communication Manager and Application Enablement Services 14 313 Configure POM 15

32 Connecting POM and Recorder Application 17 321 POM deployment with recorder 17 322 TCP based connection 18 323 TLS based secured connection 19 324 Verify connection between POM and Recorder 21 325 Link failure and recovery 22

33 Recording per Zone 22 34 Failure and Recovery 25

341 POM Server Failure 25 342 Recorder application failure 26

35 High Availability 27 351 POM server failover 27 352 Zone failover 29

36 Licensing 30 4 POM Recording Events 31

41 Recorder login and listing agents 31 411 LoginRequest Event 32 412 LoginResponse Event 33 413 ListAgentsRequest Event 33 414 ListAgentsResponse Event 34 415 Logout 34

42 Agent states and associated recording events 35 421 AgentAcquire Event 35 422 AgentRelease Event 35 423 MediaInfo Event 36 424 MediaComplete Event 37

5 POM Call Scenarios 38 51 Scenario Agent working on call 38 52 Scenario Agent holds while working on call 40 53 Scenario Agent consulttransfer while working on call 43 54 Scenario Agent consultconference while working on call 47

6 Sample Client 52 7 Limitations 52 Appendix A ndash Glossary 53 Appendix B ndash Content out of scope 54 Appendix C ndash Troubleshooting 54

Table of Figures Figure 1 Solution architecture view of POM with CC-Elite 11 Figure 2 Solution architecture view of POM with AACC 12 Figure 3 POM nailing request ndash call flow 13 Figure 4 POM dialing customer ndash call flow 13 Figure 5 POM agent talking to customer ndash call flow 14 Figure 6 Global configuration 15 Figure 7 Enable recorder 15 Figure 8 Edit NailerDriver application 16 Figure 9 Generate UCID settings 16 Figure 10 Single POM and recorder application deployment view 17 Figure 11 Multiple POM and recorder application deployment view 18 Figure 12 Connection sequence between POM and recorder application 19 Figure 13 Enable secured connection with recorder 20 Figure 14 POM certificate export option 20 Figure 15 Successful TCP connection established between POM and Recorder 21 Figure 16 Successful TLS connection established between POM and Recorder 21 Figure 17 Multiple POM zonal deployment with recorder 23 Figure 18 All zone configuration 24 Figure 19 Comma separated zone configuration 24 Figure 20 Recording events for configured zones 24 Figure 21 POM server failure 25 Figure 22 Recorder application failure 26 Figure 23 Primary and Aux POM servers connected with recorder 27 Figure 24 Failover of POM server managing zone 28 Figure 25 Zone failover 30 Figure 26 Sequence to receive events with registered agent details 31 Figure 27 Sequence to receive events and request for registered agent details 32 Figure 28 LoginRequest XML message 33 Figure 29 LoginResponse XML message 33 Figure 30 ListAgentsRequest XML message 34 Figure 31 ListAgentsResponse XML message 34 Figure 32 AgentAcquireEvent XML message 35 Figure 33 AgentReleaseEvent XML message 36 Figure 34 MediaInfoEvent XML message 37 Figure 35 MediaCompleteEvent XML message 38 Figure 36 Scenario Agent working on call 39 Figure 37 Scenario Agent puts customer on hold 41 Figure 38 Scenario Agent consults with other agent 44 Figure 39 Scenario Agent conferencing other agent 48

1 About this document This chapter describes

Scope of the document

Intended audience

Conventions used in the document

Related documents

Providing documentation feedback

Historical view

11 Scope of the document This document gives details of design and APIs provided by Proactive Outreach Manager (POM) for integration with any third party voice call recorder Proactive Outreach Manager is an outbound dialer and provides agent based as well as agent less dialing as one of its key feature Please note prior to POM 304 only Avaya Recorder was supported for call recording in POM 301 In POM 304 and above support is added for third-party call recording solutions Note Recording feature available in POM 30 allows the recording application to connect with POM over a TCP connection whereas the POM 304 enhances this by providing TLS based connection apart from the support for TCP to be backward compatible This document covers solution architecture and key concepts of POM integration design of POM and recorder the recording events various call scenarios and troubleshooting techniques as part of below chapters

Chapter 2 Architecture Overview - introduces the solution deployment architecture for general awareness of POM concepts and prerequisites for agent based dialing operations

Chapter 3 POM and Recorder Application Integration Design ndash details the design of the POM components interacting with the recording application elaborating the logical sequence of basic call flow and recording activities It also covers the multi-server deployment failover scenarios and zoning with respect to integration of POM with any recording application

Chapter 4 POM Recording Events - details all possible recording events in the form of APIs provided by POM

Chapter 5 POM Call Scenarios - covers various agent based call scenarios and the unlined sequence of messages

Chapter 6 Sample Client ndash explains the sample client code for the recording application developersintegrators

Chapter 7 Limitations and Caveats ndash describes potential enhancements in POM recorder integration design

Note This document does not cover administration and configuration details of aura products Avaya Auratrade Communication Manager Avaya Auratrade Enablement Services Avaya Contact Recorder These documents are called out in the related documents chapter

12 Intended audience This document is developed for deployment engineers and recording application developers in order to enable them in integrating recorder application with Proactive Outreach Manager The audience of this document is expected to know

Java

XML

Proactive Outreach Manager Solution overview

Avaya Aura components like Application Enablement Service Communication Manager Session Manager and System Manager

13 Conventions used in the document The following fonts are used in this document

To represent This font is used

Document Name Document Name(ex Using POM)

Linux commands Command (ex sbinservice POM restart)

Java Code javanetSocket

Note Note

Event NamesXml Event name (ex LoginRequest)

14 Related documents Document Description

CM Admin Guide Administering Avaya Aurareg Communication Manager

SM Admin Guide Administering Avaya Aurareg Session Manager

EPMPP Admin Guide Administering Avaya Aurareg Experience Portal

AES Admin Guide Administering and Maintaining Avaya Aurareg Application Enablement Services

Guide on DMCC Avaya Aurareg Application Enablement Services

ACR Admin Guide Avaya Contact Recorder Release 151 Planning Installation and Administration Guide

POM design and product documents Using Proactive Outreach Manager

15 Providing documentation feedback Let us know what you like or do not like about this document Although we cannot respond personally to all your feedback we promise we read each response we receive Please email feedback to documentavayacom

16 Historical View POM Release Support Purpose

301 TCP based integration with Minimum version of

Avaya Contact Recorder (ACR)

POM required for POM-Recorder integration is 301

Integration supported with ACR only

Integration between POM and ACR is based on TCP protocol

304 and above TLS based integration with third party recorder

Enhanced to support TLS based integration with third party recorder

Supports backward compatibility for TCP based integration with ACR

2 Architecture Overview This section describes the solution architecture of POM highlighting the adjunct products required for POM It also covers the basic concepts of POM used in the context of call recording functionality There are two deployment scenarios one with Avaya Contact Center Elite (CCElite) and another with Avaya Aura Contact Center (AACC) Following diagram gives the architectural view of POM with CCElite and ACR as the call recorder highlighting the adjuncts required for POM to function

Figure 1 Solution architecture view of POM with CC-Elite

Below diagram gives the architectural view of POM with AACC and ACR as the recorder highlighting the adjuncts required for POM to function

Figure 2 Solution architecture view of POM with AACC

As depicted in the above 2 diagrams POM is deployed as a managed application on Experience Portal as the platform As for the adjuncts POM needs Media Processing Platform (MPP) Session Manager (SM) Communication Manager (CM) Application Enablement Service (AES) products to provide an outbound dialer solution along with recording As shown above POM leverages the platform features and web services to perform the outbound operations For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP which in turn sends SIP invite to SM all the way to CM Also POM fetches the agent login and skill details using the AES SMS web service POM interacts with CMS via socket and uses rt_socket package to receive the skill feeds of the agents whose skills are configured and monitored in POM for blending operation POM interacts with ACR (sample recording application in the above diagram) over socket connection to send any recording events and ACR uses Device Media Call Control (DMCC) service of AES to trigger the call recording ACR receives the media stream from the media gateway (be it the Avaya Media server (AMS) or a G series gateway) registered with the CM For details please refer to material listed in Reference Material section for administration and provisioning documentation for these products For ease of understanding an agent based outbound call flow - explaining basic POM concepts in context of recording is explained below In order to work on any agent based outbound call POM first registers the agent also referred to as lsquonail the agentrsquo The agent nailing flow is depicted below

Figure 3 POM nailing request ndash call flow

The POM Nailer application is a CCXML application shipped as one of the POM suite of applications using for running outbound call campaigns Nailer is responsible for placing the call to an agent prior to running an agent based campaign Nailing refers to keeping an agent connection alive during multiple outbound calls during the outbound calling campaign The call is initiated using a SIP INVITE sent by MPP to CM which results in RTP established between the MPP and the CM (or more specifically the gateway registered with CM) Once the agent is nailed to call from POM POM utilizes this agent for working on customer calls There are 3 types of agent based calls in POM namely preview predictive and progressive In preview the agent is first connected by POM and then the customer information is provided to the agent by POM and agent chooses to dial the customer Whereas in progressive and predictive the customer is first connecteddialed by POM and once connected POM identifies the best suitable agent to talk to the customer using skills based routing Call flows explaining the customer call connect and patching the agent with the customer is depicted below

Figure 4 POM dialing customer ndash call flow

POM requests the platform to send INVITE to the customer and create the customerrsquos call leg Now the customer and the agent leg are connected as a conference on the MPP hosting the agent POM uses INVITE with REPLACE to achieve this

Figure 5 POM agent talking to customer ndash call flow

Every call between the customer and a nailed agent is a conference on the MPP POMrsquos nailer app requests EP to initiate an INVITE wt REPLACE as soon as it finds best agent to work on the customer call Thus conceptually recording a call is adding the recorder application as one of the participants to the conference created between a customer and a nailed agent however the physical implementation of this is not via a conference on the MPP but rather using the DMCC protocol available on CM Thus a conference is formed on communication manager between the customer the call from the MPP which is connected to the agent via CM and the call recorder via a DMCC station that was registered by AE Services to Communication Manager Once an agent is done with working on a call heshe can wrap-up the call and enter the dispositioncompletion details of the call Note that the inter-working of DMCC is out of scope of this document please refer Related Documents section This section covered in nutshell the basic concepts of POM nailing agentcustomer connections and previewprogressivepredictive dialing and wrap-up in context of agent based outbound operations

3 POM and Recorder Application Integration Design

31 Getting started This section covers the pre-requisites for any recorder application to integrate and receive call related events from POM for the purpose of call recording

311 InstallUpgrade POM First things first installupgrade to latest POM version Please refer Implementing POM and Using POM product documents available on supportavayacom

312 Configure Communication Manager and Application Enablement Services

Configure Communication Manager and Application Enablement Services as explained in reference document Application Notes to Integrate Avaya Contact Recorder 120 with Avaya Proactive Outreach Manager 30 using Avaya Aurareg Application Enablement Services 63 ndash Issue 11 available on Dev connect

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

AVAYA SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT

REVISED October 12 2015

Using this document signifies your assent to the following SDK License Terms READ THIS CAREFULLY BEFORE ELECTRONICALLY ACCESSING OR USING THIS PROPRIETARY PRODUCT THIS IS A LEGAL AGREEMENT (ldquoAGREEMENTrdquo) BETWEEN YOU INDIVIDUALLY ANDOR THE LEGAL ENTITY FOR WHOM YOU ARE OPENING INSTALLING DOWNLOADING COPYING OR OTHERWISE USING THE SDK (COLLECTIVELY AS REFERENCED HEREIN ldquoYOUrdquo ldquoYOURrdquo OR ldquoLICENSEErdquo) AND AVAYA INC OR ANY AVAYA AFFILIATE (COLLECTIVELY ldquoAVAYArdquo) IF YOU ARE ACCEPTING THE TERMS AND CONDITIONS OF THIS AGREEMENT ON BEHALF OF A LEGAL ENTITY YOU REPRESENT AND WARRANT THAT YOU HAVE FULL LEGAL AUTHORITY TO ACCEPT ON BEHALF OF AND BIND SUCH LEGAL ENTITY TO THIS AGREEMENT BY OPENING THE MEDIA CONTAINER BY INSTALLING DOWNLOADING COPYING OR OTHERWISE USING THE AVAYA SOFTWARE DEVELOPMENT KIT (ldquoSDKrdquo) OR AUTHORIZING OTHERS TO DO SO YOU SIGNIFY THAT YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT IF YOU DO NOT HAVE SUCH AUTHORITY OR DO NOT WISH TO BE BOUND BY THE TERMS OF THIS AGREEMENT SELECT THE DECLINE BUTTON AT THE END OF THE TERMS OF THIS AGREEMENT OR THE EQUIVALENT OPTION 10 DEFINITIONS 11 ldquoAffiliatesrdquo means any entity that is directly or indirectly controlling controlled by or under common control with Avaya Inc For purposes of this definition ldquocontrolrdquo means the power to direct the management and policies of such party directly or indirectly whether through ownership of voting securities by contract or otherwise and the terms ldquocontrollingrdquo and ldquocontrolledrdquo have meanings correlative to the foregoing 12 ldquoAvaya Software Development Kitrdquo or ldquoSDKrdquo means Avaya technology which may include object code Client Libraries Specification Documents Software libraries application programming interfaces (ldquoAPIrdquo) Software tools Sample Application Code published specifications and Documentation 13 ldquoClient Librariesrdquo mean any enabler code specifically designated as such and included in a SDK Client Libraries may also be referred to as ldquoDLLsrdquo and represent elements of the SDK required at runtime to communicate with Avaya products or other SDK elements 14 ldquoChange In Controlrdquo shall be deemed to have occurred if any person entity or group comes to own or control directly or indirectly beneficially or of record voting securities (or any other form of controlling interest) which represent more than fifty percent (50) of the total voting power of or to Licensee 15 ldquoDerivative Work(s)rdquo means (a) for copyrightable or copyrighted material any translation (including translation into other computer languages) port compiling of Source Code into object code combination with a pre-existing work modification correction addition extension upgrade improvement compilation abridgment or other form in which an existing work may be recast transformed or adapted or which would otherwise constitute a derivative work under the United States Copyright Act (b) for patentable or patented material any changes additions modifications or improvements thereon and (c) for material which is protected by trade secret any new material derived from such existing trade secret material including new material which may be protected by copyright patent andor trade secret Permitted Modifications will be considered Derivative Works 16 ldquoDocumentationrdquo includes but is not limited to programmer guides CDs manuals materials and information appropriate or necessary for use in connection with the SDK Documentation may be provided in machine-readable electronic or hard copy form 17 ldquoIntellectual Propertyrdquo means any and all tangible and intangible (i) rights associated with works of authorship throughout the world including but not limited to copyrights neighboring rights moral rights and mask works (ii) trademark

and trade name rights and similar rights (iii) trade secret rights (iv) patents algorithms designs and other industrial property rights (v) all other intellectual and industrial property rights (of every kind and nature throughout the world and however designated) whether arising by operation of law contract license or otherwise and (vi) all registrations initial applications renewals extensions continuations divisions or reissues thereof now or hereafter in force (including any rights in any of the foregoing) 18 ldquoOpen Source Software or OSS is as defined by the Open Source Initiative (ldquoOSIrdquo) and is software licensed under an OSI approved license as set forth at httpwwwopensourceorgdocsosd (or such successor site as designated by OSI) 19 ldquoPermitted Modification(s)rdquo means Licenseersquos modifications of the Source Code as needed to create applications interfaces workflows or processes for use with Avaya products 110 ldquoSpecification Documentrdquo means any notes or similar instructions in hard copy or machine readable form including any technical interface andor interoperability specifications that define the requirements and conditions for connection to andor interoperability with Avaya products systems and solutions 111 ldquoSource Coderdquo means the high-level statement version of the Sample Application Code or Software written in the source language used by programmers and includes one or more programs Source Code programs may include one or more files but is not limited to user interface markup language (mxml) action script (as) precompiled Flash code (swc) java script (js) hypertext markup language (html) active server pages (asp) C or C Net source code (cs) java source code (java) java server pages (jsp) java archives (jar) graphic interchange format (gif) cascading style sheet (css) and extensible markup language (xml) files Source Code files may also be provided in binary object format may require explicit compilation into binary object format for execution or may be interpreted natively using a separate application execution program or platform 112 ldquoSample Application Coderdquo means Source Code andor executable Software provided for the purposes of demonstrating functionality of an Avaya product through the Avaya Software Development Kit 113 ldquoSoftwarerdquo means Avayarsquos intangible information constituting one or more computer or apparatus programs including but not limited to Avaya software in Source Code or in machine-readable compiled object code form 20 LICENSE GRANT 21 SDK License

A Provided Licensee pays to Avaya the applicable license fee (if any) Avaya hereby grants Licensee a limited non-exclusive non-transferable license (without the right to sublicense except as set forth in 21B(iii)) to use the SDK (including Sample Application Code) solely for the purpose of Licensees internal development efforts to develop applications interfaces value-added services andor solutions workflows or processes to work in conjunction with Avaya products provided however that Licensee shall have no right to distribute license (whether or not through multiple tiers) or otherwise transfer the SDK to any third party or incorporate the SDK in any software product or technology Avaya further grants Licensee the right if the Licensee so chooses to package Client Libraries for redistribution with Licenseersquos complementary applications that have been developed using this SDK subject to the terms and conditions set forth herein Where SDK includes Specification Document(s) Licensee is granted a license to use such Specification Documents solely to enable Licenseersquos products services and application solutions to exchange messages and signals with Avaya products systems and solutions to which the Specification Document(s) apply Avayarsquos support obligations for the SDK Sample Application Code and any Derivative Works are set forth in Section 4 of this Agreement B The foregoing license to use Sample Application Code is contingent upon the following (i) Licensee may use and modify the Sample Application Code Specification Documents and Documentation solely for internal development of applications interfaces

workflows or processes for use with Avaya products integration of such applications interfaces workflows and processes with Avaya products and interoperability testing of the foregoing with Avaya products (ii) Licensee must ensure that the modifications made to the Sample Application Code as permitted in clause (i) of this Section 21B are compatible andor interoperable with Avaya products andor integrated therewith (iii) Licensee may compile or otherwise prepare for distribution the Sample Application Code with Permitted Modifications into an object code or other suitable program format for distribution provided that such sublicense is subject to an end user license agreement that is consistent with the terms of this Agreement and if applicable the Avaya DevConnect Program Agreement and is equally as protective as Licenseersquos standard software license terms but in no event shall the standard of care be less than a reasonable degree of care Under no circumstances shall Licensee enable the use or activation of any of Avayarsquos Intellectual Property by an end user without such end user having acquired the additional necessary licenses to Avaya Intellectual Property Avayarsquos support obligations for the SDK Sample Application Code and any Derivative Works are set forth in Section 4 of this Agreement C Except as expressly authorized by this Agreement and unless otherwise permitted by the applicable law Licensee shall not (i) translate publish or display the SDK Specification Documents or Documentation or any copy or part thereof or (ii) use modify or distribute the redistributable Client Libraries in any manner that causes any portion of the redistributable Client Libraries that is not already subject to an OSS license to become subject to the terms of any OSS license D Licensee agrees that it is licensed to use the SDK only in connection with Avaya products (and if applicable in connection with services provided under the Avaya DevConnect Program Agreement) In the event of any conflict between the terms and conditions of this Agreement and the Avaya DevConnect Program Agreement (if applicable) the terms and conditions of the Avaya DevConnect Program Agreement shall prevail E With respect to Software that contains elements provided by third party suppliers Licensee may install and use the Software in accordance with the terms and conditions of the applicable license agreements such as ldquoshrinkwraprdquo or ldquoclick-throughrdquo licenses accompanying or applicable to the Software F Avaya shall have the right at its cost and expense to inspect andor audit (i) by remote polling or other reasonable electronic means at any time and (ii) in person during normal business hours and with reasonable notice Licenseersquos books records and accounts to determine Licenseersquos compliance with this Agreement In the event such inspection or audit uncovers non-compliance with this Agreement then without prejudice to Avayarsquos termination rights hereunder Licensee shall promptly pay Avaya any applicable license fees Licensee agrees to keep a current record of the location of the SDK

22 No Standalone Product Nothing in this Agreement authorizes

or grants Licensee any rights to distribute or otherwise make available

to a third party the SDK in whole or in part or any Derivative Work

in source or object code format on a standalone basis other than the

modifications permitted in Section 21B of this Agreement 23 Proprietary Notices Licensee shall not remove any copyright trade mark or other proprietary notices incorporated in the copies of the SDK Sample Application Code and redistributable files in Licenseersquos possession or control or any modifications thereto Redistributions in binary form or other suitable program format for distribution to the extent expressly permitted must also reproduce Avayarsquos copyright trademarks or other proprietary notices as incorporated in the SDK in any associated Documentation or ldquosplash screensrdquo that display Licensee copyright notices 24 Third-Party Components You acknowledge certain software programs or portions thereof included in the SDK may contain software distributed under third party agreements (ldquoThird Party Componentsrdquo) which may contain terms that

expand or limit rights to use certain portions of the SDK (ldquoThird Party Termsrdquo) Information identifying the copyright holders of the Third Party Components and the Third Party Terms that apply is available in the attached Schedule 1 (if any) SDK Documentation or on Avayarsquos web site at httpsupportavayacomCopyright (or such successor site as designated by Avaya) The open source software license terms provided as Third Party Terms are consistent with the license rights granted in this Agreement and may contain additional rights benefiting You such as modification and distribution of the open source software The Third Party Terms shall take precedence over this Agreement solely with respect to the applicable Third Party Components to the extent that this Agreement imposes greater restrictions on You than the applicable Third Party Terms Licensee is solely responsible for procuring any necessary licenses for Third Party Components including payment of licensing royalties or other amounts to third parties for the use thereof 25 Copies of SDK Licensee may copy the SDK only as necessary to exercise its rights hereunder provided however that Licensee may also make one (1) copy for back-up purposes and any reproduction of the SDK (including derivatives thereof) either in whole or in part shall include the Avaya copyright notice that was provided in the SDK 26 No Reverse Engineering Licensee shall have no rights to any Source Code for any of the software in the SDK except for the explicit rights to use the Source Code as provided to Licensee hereunder Licensee agrees that it shall not cause or permit the disassembly decompilation or reverse engineering of the Software Notwithstanding the foregoing if the SDK is rightfully located in a member state of the European Union and Licensee needs information about the Software in the SDK in order to achieve interoperability of an independently created software program with the Software in the SDK Licensee will first request such information from Avaya Avaya may charge Licensee a reasonable fee for the provision of such information If Avaya refuses to make such information available then Licensee may take steps such as reverse assembly or reverse compilation to the extent necessary solely in order to achieve interoperability of the Software in the SDK with an independently created software program To the extent that the Licensee is expressly permitted by applicable mandatory law to undertake any of the activities listed in this section Licensee will not exercise those rights until Licensee has given Avaya twenty (20) days written notice of its intent to exercise any such rights 27 Responsibility for Development Tools Licensee acknowledges that effective utilization of the SDK may require the use of a development tool compiler and other software and technology of third parties which may be incorporated in the SDK pursuant to Section 24 Licensee is solely responsible for procuring such third party software and technology and the necessary licenses including payment of licensing royalties or other amounts to third parties for the use thereof 28 US Government End Users The SDK shall be classified as commercial computer software and the Documentation is classified as commercial computer software documentation or commercial items pursuant to FAR 12212 or DFAR 2277202 as applicable Any use modification reproduction release performance display or disclosure of the SDK or Documentation by the Government of the United States shall be governed solely by the terms of the Agreement and shall be prohibited except to the extent expressly permitted by the terms of the Agreement 29 Limitation of Rights No right is granted to Licensee to sublicense its rights hereunder All rights not expressly granted are reserved by Avaya and except as expressly set forth herein no license is granted by Avaya under this Agreement directly by implication estoppel or otherwise under any patent copyright trade secret or trademark or other Intellectual Property right of Avaya Nothing herein shall be deemed to authorize Licensee to use Avayas trademarks or trade names in Licensees advertising marketing promotional sales or related materials 210 Nonassertion by Licensee Licensee agrees not to assert any patent rights related to the SDK or applications developed using the SDK against Avaya Avayas distributors Avaya customers or other licensees of the SDK for making using selling offering for sale or importing any products or technology developed using the SDK

211 Avaya Independent Development Licensee understands and agrees that Avaya or its Affiliates may acquire license develop for itself or have others develop for it and market andor distribute similar software to that which Licensee may develop In absence of a separate written agreement to the contrary Avaya or its Affiliates will be free to use any information Licensee provides including problem reports or enhancement requests to Avaya for any purpose subject to any applicable patents or copyrights 212 Feedback and Support Licensee agrees to provide any comments and suggestions regarding the performance of the SDK (a) if applicable on the developer forum of the DevConnect Program on wwwavayacomdevconnect or (b) via the process otherwise indicated by Avaya with respect to the SDK Avaya agrees to monitor the applicable forum but is under no obligation to implement any of the suggestions andor proposals or be required to respond to any questions asked in the forum Self-support tools are available via the Avaya DevConnect programrsquos portal and requires self registration Licensee hereby assigns to Avaya all right title and interest in and to Feedback provided to Avaya 213 Fees and Taxes To the extent that fees are associated with the license of the SDK Licensee agrees to pay to Avaya or pay directly to the applicable government or taxing authority if requested by Avaya all taxes and charges including without limitation penalties and interest which may be imposed by any federal state or local governmental or taxing authority arising hereunder excluding however all taxes computed upon Avayarsquos net income If You move any Software including the SDK and as a result of such move a jurisdiction imposes a duty tax levy or fee (including withholding taxes fees customs or other duties for the import and export of any such Software) then You are solely liable for and agree to pay any such duty taxes levy or other fees 214 No Endorsement Neither the name Avaya its Affiliates nor the names of contributors may be used to endorse or promote products derived from the Avaya SDK without specific prior written permission from Avaya 215 High Risk Activities The Avaya SDK is not fault-tolerant and is not designed manufactured or intended for use or resale as on-line control equipment or in hazardous environments requiring failsafe performance such as in the operation of nuclear facilities aircraft navigation or aircraft communications systems mass transit air traffic control medical or direct life support machines dedicated emergency call handling systems or weapons systems in which the failure of the Avaya SDK could lead directly to death personal injury or severe physical or environmental damage (high risk activities) If Licensee uses the Avaya SDK for high risk activities Licensee does so at Licenseersquos own risk and Licensee assumes all responsibility and liability for such use to the maximum extent such limitation or exclusion is permitted by applicable law Licensee agrees that Avaya and its suppliers will not be liable for any claims or damages arising from or related to use of the Avaya SDK for high risk activities to the maximum extent such limitation or exclusion is permitted by law 216 No Virus Licensee warrants that (i) the applications interfaces value-added services andor solutions workflows or processes Licensee develops using this SDK will not contain any computer program file that includes time code limitations disabling devices or any other mechanism which will prevent the Supplier Software from being functional at all times (collectively ldquoTime Bombsrdquo) and (ii) the applications interfaces value-added services andor solutions workflows or processes Licensee develops using this SDK will be free of computer viruses black boxes malware trapdoors and other mechanisms to allow remotehidden attacks or access through unauthorized computerized command and control and will not contain any other computer software routines designed to spy monitor traffic (network sniffers keyloggers) damage or erase such applications interfaces value-added services andor solutions workflows or processes developed using this SDK or data or any computer files or systems of Avaya its Affiliates andor end users (collectively ldquoVirusrdquo) In addition to any other remedies permitted in the Agreement if Licensee breaches its warranties under this Section Licensee will at its expense take remedial action to eliminate any Time Bombs andor Viruses and prevent re-occurrence (including implementing appropriate processes to prevent further occurrences) as well

as provide prompt reasonable assistance to Avaya to materially reduce the effects of the Time Bomb andor Virus 217 Disclaimer Any software security feature is not a guaranty against malicious code deleterious routines and other techniques and tools employed by computer ldquohackersrdquo and other third parties to create security exposures Compromised passwords represent a major security risk Avaya encourages You to create strong passwords using three different character types change Your password regularly and refrain from using the same password regularly You must treat such information as confidential You agree to notify Avaya immediately upon becoming aware of any unauthorized use or breach of Your user name password account or subscription You are responsible for ensuring that Your networks and systems are adequately secured against unauthorized intrusion or attack and regularly back up of Your data and files in accordance with good computing practices 3 OWNERSHIP 31 As between Avaya and Licensee Avaya or its licensors shall own and retain all proprietary rights including all patent copyright trade secret trademark and other Intellectual Property rights in and to the SDK and any corrections bug fixes enhancements updates improvements or modifications thereto and Licensee hereby irrevocably transfers conveys and assigns to Avaya all of its right title and interest therein Avaya shall have the exclusive right to apply for or register any patents mask work rights copyrights and such other proprietary protections with respect thereto Licensee acknowledges that the license granted under this Agreement does not provide Licensee with title or ownership to the SDK but only a right of limited use under the terms and conditions of this Agreement 32 Grant Back License to Avaya Licensee hereby grants to Avaya an irrevocable perpetual non-exclusive sub-licensable royalty-free worldwide license under any and all of Licensees Intellectual Property rights related to any Permitted Modifications to use employ practice make have made sell andor otherwise exploit any and all Permitted Modifications 40 SUPPORT Avaya will not provide any support for the SDK provided under this Agreement or for any Derivative Works including without limitation modifications to the Source Code or applications built by Licensee using the SDK Notwithstanding the above limitations Avaya shall have no obligation to provide support for the use of the SDK or Licensees derivative application services or solutions which may or may not include redistributable Client Libraries or Sample Application Code to any third party to whom Licensee delivers such derivative applications services or solutions Avaya further will not provide fixes patches or repairs for any defects that might exist in the SDK or the Sample Application Code provided under this Agreement In the event that Licensee desires support services for the SDK and provided that Avaya offers such support services (in its sole discretion) Licensee will be required to enter into a Avaya DevConnect Program Agreement or any support agreement with Avaya Nothing herein shall be construed to require Avaya to provide support services or updates upgrades bug fixes or modifications to the SDK 50 CONFIDENTIALITY 51 Protection of Confidential Information Licensee shall take all reasonable measures to maintain the confidentiality of the SDK Specification Documents and other Avaya technical information obtained by it (collectively the ldquoConfidential Informationrdquo) and will not disclose the Confidential Information to any third party Licensee agrees at all times to protect and preserve the SDK in strict confidence and perpetually and shall not use such Confidential Information other than as expressly authorized by Avaya under this Agreement nor shall Licensee disclose any such Confidential Information to third parties without Avayas written consent Licensee further agrees to immediately return to Avaya all Confidential Information (including copies thereof) in Licensees possession custody or control upon termination of this Agreement at any time and for any reason The obligations of confidentiality shall not apply to information which (a) has entered the public domain except where such entry is the result of Licensees breach of this Agreement (b) prior to disclosure hereunder was already rightfully in Licensees possession (c) subsequent to disclosure hereunder is obtained by Licensee on a non-confidential basis from a third party who has the right to disclose such information

to the Licensee (d) is required to be disclosed pursuant to a court order so long as Avaya is given adequate notice and the ability to challenge such required disclosure 52 Press Releases Any press release or publication regarding this Agreement is subject to prior review and written approval of Avaya 60 NO WARRANTY The SDK and Documentation are provided ldquoAS-ISrdquo without any warranty whatsoever AVAYA SPECIFICALLY AND EXPRESSLY DISCLAIMS ANY WARRANTIES OR CONDITIONS STATUTORY OR OTHERWISE INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE NONINFRINGEMENT AND SATISFACTORY QUALITY AVAYA DOES NOT WARRANT THAT THE SDK AND DOCUMENTATION ARE SUITABLE FOR LICENSEES USE THAT THE SDK OR DOCUMENTATION ARE WITHOUT DEFECT OR ERROR THAT OPERATION WILL BE UNINTERRUPTED OR THAT DEFECTS WILL BE CORRECTED FURTHER AVAYA MAKES NO WARRANTY REGARDING THE RESULTS OF THE USE OF THE SDK AND DOCUMENTATION NEITHER AVAYA NOR ITS SUPPLIERS MAKE ANY WARRANTY EXPRESS OR IMPLIED THAT SECURITY THREATS AND VULNERABILITIES WILL BE DETECTED OR SOFTWARE WILL RENDER AN END USERrsquoS OR LICENSEErsquoS NETWORK OR PARTICULAR NETWORK ELEMENTS SAFE FROM INTRUSIONS AND OTHER SECURITY BREACHES 70 CONSEQUENTIAL DAMAGES WAIVER EXCEPT FOR PERSONAL INJURY CLAIMS AND WILLFUL MISCONDUCT AVAYA SHALL NOT BE LIABLE FOR ANY INCIDENTAL INDIRECT SPECIAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH ARISING OUT OF OR RELATING TO THIS AGREEMENT OR USE OF THE SDK OR FOR THE LOSS OR CORRUPTION OF DATA INFORMATION OF ANY KIND BUSINESS PROFITS OR OTHER COMMERCIAL LOSS HOWEVER CAUSED AND WHETHER OR NOT AVAYA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 80 LIMITATION OF LIABILITY EXCEPT FOR PERSONAL INJURY CLAIMS AND WILLFUL MISCONDUCT IN NO EVENT SHALL AVAYAS TOTAL LIABILITY TO LICENSEE IN CONNECTION WITH ARISING OUT OF OR RELATING TO THIS AGREEMENT EXCEED FIVE HUNDRED DOLLARS ($500) THE PARTIES AGREE THAT THE LIMITATIONS SPECIFIED IN THIS SECTION WILL APPLY EVEN IF ANY LIMITED REMEDY PROVIDED IN THIS AGREEMENT IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE 90 INDEMNIFICATION Licensee shall indemnify and hold harmless Avaya its Affiliates and their respective officers directors agents suppliers customers and employees from and against all claims damages losses liabilities costs expenses and fees (including fees of attorneys and other professionals) arising from or relating to Licenseersquos use of the SDK with other software such as operating systems and codecs and the direct or indirect distribution or sale of software Derivative Works or other products (including but not limited to applications interfaces and application programming interfaces) developed utilizing the SDK including but not limited to products liability claims and claims of infringement of third party Intellectual Property rights 100 TERM AND TERMINATION 101 This Agreement will continue through December 31

st of the

current calendar year The Agreement will automatically renew for one (1) year terms and run concurrently with Licenseersquos membership in the Avaya DevConnect Program if applicable unless terminated as specified in Section 102 or 103 below and if applicable provided Licensee is a member of the Avaya DevConnect Program in a good-standing as determined by Avaya at its sole discretion 102 Either party shall have the right to terminate the Agreement upon thirty (30) days written notice to the other party 103 Notwithstanding language to the contrary Avaya may terminate this Agreement immediately upon written notice to Licensee for breach of Section 2 (License Grant) Section 5 (Confidentiality) or Section 12 (Compliance with Laws) Avaya may also terminate this license by giving written notice if a

Change In Control should occur or if Licensee becomes insolvent or voluntary or involuntary proceedings by or against Licensee are instituted in bankruptcy or under any insolvency law or a receiver or custodian is appointed for Licensee or proceedings are instituted by or against Licensee for corporate reorganization or the dissolution of Licensee which proceedings if involuntary have not been dismissed within thirty (30) days after the date of filing or Licensee makes an assignment for the benefit of its creditors or substantially all of the assets of Licensee are seized or attached and not released within sixty (60) days thereafter or if Licensee has ceased or threatened to cease to do business in the regular course 104 Upon termination of this Agreement Licensee will immediately cease using the SDK Development Kit and Licensee agrees to destroy all adaptations or copies of the SDK and Documentation or return them to Avaya upon termination of this License 105 The rights and obligations of the parties contained in Sections 23 26 27 210 211 3 and 5 through 18 shall survive any expiration or termination of this Agreement 110 ASSIGNMENT Avaya may assign all or any part of its rights and obligations hereunder Licensee may not assign this Agreement or any interest or rights granted hereunder to any third party without the prior written consent of Avaya The term assign includes but is not limited to any transaction in which there is a Change In Control or reorganization of Licensee pursuant to a merger sale of assets or stock This Agreement shall terminate immediately upon occurrence of any prohibited assignment 120 COMPLIANCE WITH LAWS Licensee shall comply with all applicable laws and regulations including without limitation those applicable to data privacy intellectual property trade secret fraud music performance rights and the export or re-export of technology and will not export or re-export the SDK or any other technical information provided under this Agreement in any form in violation of the export control laws of the United States of America and of any other applicable country For more information on such export laws and regulations Licensee may refer to the resources provided in the websites maintained by the US Commerce Department the US State Department and the US Office of Foreign Assets Control 130 WAIVER The failure to assert any rights under this Agreement including but not limited to the right to terminate in the event of breach or default will not be deemed to constitute a waiver of the right to enforce each and every provision of this Agreement in accordance with their terms 140 SEVERABILITY If any provision of this Agreement is determined to be unenforceable or invalid this Agreement will not be rendered unenforceable or invalid as a whole and the provision will be changed and interpreted so as to best accomplish the objectives of the original provision within the limits of applicable law 150 GOVERNING LAW AND DISPUTE RESOLUTION This Agreement and any dispute claim or controversy arising out of or relating to this Agreement (Dispute) including without limitation those relating to the formation interpretation breach or termination of this Agreement or any issue regarding whether a Dispute is subject to arbitration under this Agreement will be governed by New York State laws excluding conflict of law principles and the United Nations Convention on Contracts for the International Sale of Goods Any Dispute shall be resolved in accordance with the following provisions The disputing party shall give the other party written notice of the Dispute The parties will attempt in good faith to resolve each Dispute within thirty (30) days or such other longer period as the parties may mutually agree following the delivery of such notice by negotiations between designated representatives of the parties who have dispute resolution authority If a Dispute that arose anywhere other than in the United States or is based upon an alleged breach committed anywhere other than in the United States cannot be settled under these procedures and within these timeframes it will be conclusively determined upon request of either party by a final and binding arbitration proceeding to be held in accordance with the Rules of Arbitration of the International Chamber of Commerce by a single arbitrator appointed by the parties or (failing agreement) by an arbitrator appointed by the President

of the International Chamber of Commerce (from time to time) except that if the aggregate claims cross claims and counterclaims by any one party against any or all other parties exceed One Million US Dollars at the time all claims including cross claims and counterclaims are filed the proceeding will be held in accordance with the Rules of Arbitration of the International Chamber of Commerce by a panel of three arbitrator(s) appointed in accordance with the Rules of Arbitration of the International Chamber of Commerce The arbitration will be conducted in the English language at a location agreed by the parties or (failing agreement) ordered by the arbitrator(s) The arbitrator(s) will have authority only to award compensatory damages within the scope of the limitations of this Agreement and will not award punitive or exemplary damages The arbitrator(s) will not have the authority to limit expand or otherwise modify the terms of this Agreement The ruling by the arbitrator(s) will be final and binding on the parties and may be entered in any court having jurisdiction over the parties or any of their assets The parties will evenly split the cost of the arbitrator(s) fees but each party will bear its own attorneys fees and other costs associated with the arbitration The parties their representatives other participants and the arbitrator(s) will hold the existence content and results of the arbitration in strict confidence to the fullest extent permitted by law Any disclosure of the existence content and results of the arbitration shall be as limited and narrowed as required to comply with the applicable law By way of illustration if the applicable law mandates the disclosure of the monetary amount of an arbitration award only the underlying opinion or rationale for that award may not be disclosed If a Dispute by one party against the other that arose in the United States or is based upon an alleged breach committed in the United States cannot be settled under the procedures and within the timeframe set forth above then either party may bring an action or proceeding solely in either the Supreme Court of the State of New York New York County or the United States District Court for the Southern District of New York Except as otherwise stated above with regard to arbitration of Disputes that arise anywhere other than in the United States or are based upon an alleged breach committed anywhere other than in the United States each party to this Agreement consents to the exclusive jurisdiction of those courts including their appellate courts for the purpose of all actions and proceedings The parties agree that the arbitration provision in this section may be enforced by injunction or other equitable order and no bond or security of any kind will be required with respect to any such injunction or order Nothing in this section will be construed to preclude either party from seeking provisional remedies including but not limited to temporary restraining orders and preliminary injunctions from any court of competent jurisdiction in order to protect its rights including its rights pending arbitration at any time In addition and notwithstanding the foregoing Avaya shall be entitled to take any necessary legal action at any time including without limitation seeking immediate injunctive relief from a court of competent jurisdiction in order to protect Avayas intellectual property and its confidential or proprietary information (including but not limited to trade secrets) 160 IMPORTEXPORT CONTROL Licensee is advised that the SDK is of US origin and subject to the US Export Administration Regulations (ldquoEARrdquo) The SDK also may be subject to applicable local country importexport laws and regulations Diversion contrary to US andor applicable local country law andor regulation is prohibited Licensee agrees not to directly or indirectly export re-export import download or transmit the SDK to any country end user or for any use that is contrary to applicable US andor local country regulation or statute (including but not limited to those countries embargoed by the US government) Licensee represents that any governmental agency has not issued sanctions against Licensee or otherwise suspended revoked or denied Licensees importexport privileges Licensee agrees not to use or transfer the SDK for any use relating to nuclear chemical or biological weapons or missile technology unless authorized by the US andor any applicable local government by regulation or specific written license Additionally Licensee is advised that the SDK may contain encryption algorithm or source code that may not be exported to government or military

end users without a license issued by the US Bureau of Industry and Security and any other countryrsquos governmental agencies where applicable 170 AGREEMENT IN ENGLISH The parties confirm that it is their wish that the Agreement as well as all other documents relating hereto including all notices have been and shall be drawn up in the English language only Les parties aux preacutesentes confirment leur volonteacute que cette convention de mecircme que tous les documents y compris tout avis qui sy rattachent soient reacutedigeacutes en langue anglaise 180 ENTIRE AGREEMENT This Agreement its exhibits and other agreements or documents referenced herein constitute the full and complete understanding and agreement between the parties and supersede all contemporaneous and prior understandings agreements (excluding the Avaya DevConnect Program Agreement) and representations relating to the subject matter hereof No modifications alterations or amendments shall be effective unless in writing signed by both parties to this Agreement 19 REDISTRIBUTABLE CLIENT FILES The list of SDK client files that can be redistributed if any are in the SDK in a file called Redistributabletxt

Table of Contents

Table of Figures 8 1 About this document 9

11 Scope of the document 9 12 Intended audience 10 13 Conventions used in the document 10 14 Related documents 10 15 Providing documentation feedback 10 16 Historical View 10

2 Architecture Overview 11 3 POM and Recorder Application Integration Design 14

31 Getting started 14 311 InstallUpgrade POM 14 312 Configure Communication Manager and Application Enablement Services 14 313 Configure POM 15

32 Connecting POM and Recorder Application 17 321 POM deployment with recorder 17 322 TCP based connection 18 323 TLS based secured connection 19 324 Verify connection between POM and Recorder 21 325 Link failure and recovery 22

33 Recording per Zone 22 34 Failure and Recovery 25

341 POM Server Failure 25 342 Recorder application failure 26

35 High Availability 27 351 POM server failover 27 352 Zone failover 29

36 Licensing 30 4 POM Recording Events 31

41 Recorder login and listing agents 31 411 LoginRequest Event 32 412 LoginResponse Event 33 413 ListAgentsRequest Event 33 414 ListAgentsResponse Event 34 415 Logout 34

42 Agent states and associated recording events 35 421 AgentAcquire Event 35 422 AgentRelease Event 35 423 MediaInfo Event 36 424 MediaComplete Event 37

5 POM Call Scenarios 38 51 Scenario Agent working on call 38 52 Scenario Agent holds while working on call 40 53 Scenario Agent consulttransfer while working on call 43 54 Scenario Agent consultconference while working on call 47

6 Sample Client 52 7 Limitations 52 Appendix A ndash Glossary 53 Appendix B ndash Content out of scope 54 Appendix C ndash Troubleshooting 54

Table of Figures Figure 1 Solution architecture view of POM with CC-Elite 11 Figure 2 Solution architecture view of POM with AACC 12 Figure 3 POM nailing request ndash call flow 13 Figure 4 POM dialing customer ndash call flow 13 Figure 5 POM agent talking to customer ndash call flow 14 Figure 6 Global configuration 15 Figure 7 Enable recorder 15 Figure 8 Edit NailerDriver application 16 Figure 9 Generate UCID settings 16 Figure 10 Single POM and recorder application deployment view 17 Figure 11 Multiple POM and recorder application deployment view 18 Figure 12 Connection sequence between POM and recorder application 19 Figure 13 Enable secured connection with recorder 20 Figure 14 POM certificate export option 20 Figure 15 Successful TCP connection established between POM and Recorder 21 Figure 16 Successful TLS connection established between POM and Recorder 21 Figure 17 Multiple POM zonal deployment with recorder 23 Figure 18 All zone configuration 24 Figure 19 Comma separated zone configuration 24 Figure 20 Recording events for configured zones 24 Figure 21 POM server failure 25 Figure 22 Recorder application failure 26 Figure 23 Primary and Aux POM servers connected with recorder 27 Figure 24 Failover of POM server managing zone 28 Figure 25 Zone failover 30 Figure 26 Sequence to receive events with registered agent details 31 Figure 27 Sequence to receive events and request for registered agent details 32 Figure 28 LoginRequest XML message 33 Figure 29 LoginResponse XML message 33 Figure 30 ListAgentsRequest XML message 34 Figure 31 ListAgentsResponse XML message 34 Figure 32 AgentAcquireEvent XML message 35 Figure 33 AgentReleaseEvent XML message 36 Figure 34 MediaInfoEvent XML message 37 Figure 35 MediaCompleteEvent XML message 38 Figure 36 Scenario Agent working on call 39 Figure 37 Scenario Agent puts customer on hold 41 Figure 38 Scenario Agent consults with other agent 44 Figure 39 Scenario Agent conferencing other agent 48

1 About this document This chapter describes

Scope of the document

Intended audience

Conventions used in the document

Related documents

Providing documentation feedback

Historical view

11 Scope of the document This document gives details of design and APIs provided by Proactive Outreach Manager (POM) for integration with any third party voice call recorder Proactive Outreach Manager is an outbound dialer and provides agent based as well as agent less dialing as one of its key feature Please note prior to POM 304 only Avaya Recorder was supported for call recording in POM 301 In POM 304 and above support is added for third-party call recording solutions Note Recording feature available in POM 30 allows the recording application to connect with POM over a TCP connection whereas the POM 304 enhances this by providing TLS based connection apart from the support for TCP to be backward compatible This document covers solution architecture and key concepts of POM integration design of POM and recorder the recording events various call scenarios and troubleshooting techniques as part of below chapters

Chapter 2 Architecture Overview - introduces the solution deployment architecture for general awareness of POM concepts and prerequisites for agent based dialing operations

Chapter 3 POM and Recorder Application Integration Design ndash details the design of the POM components interacting with the recording application elaborating the logical sequence of basic call flow and recording activities It also covers the multi-server deployment failover scenarios and zoning with respect to integration of POM with any recording application

Chapter 4 POM Recording Events - details all possible recording events in the form of APIs provided by POM

Chapter 5 POM Call Scenarios - covers various agent based call scenarios and the unlined sequence of messages

Chapter 6 Sample Client ndash explains the sample client code for the recording application developersintegrators

Chapter 7 Limitations and Caveats ndash describes potential enhancements in POM recorder integration design

Note This document does not cover administration and configuration details of aura products Avaya Auratrade Communication Manager Avaya Auratrade Enablement Services Avaya Contact Recorder These documents are called out in the related documents chapter

12 Intended audience This document is developed for deployment engineers and recording application developers in order to enable them in integrating recorder application with Proactive Outreach Manager The audience of this document is expected to know

Java

XML

Proactive Outreach Manager Solution overview

Avaya Aura components like Application Enablement Service Communication Manager Session Manager and System Manager

13 Conventions used in the document The following fonts are used in this document

To represent This font is used

Document Name Document Name(ex Using POM)

Linux commands Command (ex sbinservice POM restart)

Java Code javanetSocket

Note Note

Event NamesXml Event name (ex LoginRequest)

14 Related documents Document Description

CM Admin Guide Administering Avaya Aurareg Communication Manager

SM Admin Guide Administering Avaya Aurareg Session Manager

EPMPP Admin Guide Administering Avaya Aurareg Experience Portal

AES Admin Guide Administering and Maintaining Avaya Aurareg Application Enablement Services

Guide on DMCC Avaya Aurareg Application Enablement Services

ACR Admin Guide Avaya Contact Recorder Release 151 Planning Installation and Administration Guide

POM design and product documents Using Proactive Outreach Manager

15 Providing documentation feedback Let us know what you like or do not like about this document Although we cannot respond personally to all your feedback we promise we read each response we receive Please email feedback to documentavayacom

16 Historical View POM Release Support Purpose

301 TCP based integration with Minimum version of

Avaya Contact Recorder (ACR)

POM required for POM-Recorder integration is 301

Integration supported with ACR only

Integration between POM and ACR is based on TCP protocol

304 and above TLS based integration with third party recorder

Enhanced to support TLS based integration with third party recorder

Supports backward compatibility for TCP based integration with ACR

2 Architecture Overview This section describes the solution architecture of POM highlighting the adjunct products required for POM It also covers the basic concepts of POM used in the context of call recording functionality There are two deployment scenarios one with Avaya Contact Center Elite (CCElite) and another with Avaya Aura Contact Center (AACC) Following diagram gives the architectural view of POM with CCElite and ACR as the call recorder highlighting the adjuncts required for POM to function

Figure 1 Solution architecture view of POM with CC-Elite

Below diagram gives the architectural view of POM with AACC and ACR as the recorder highlighting the adjuncts required for POM to function

Figure 2 Solution architecture view of POM with AACC

As depicted in the above 2 diagrams POM is deployed as a managed application on Experience Portal as the platform As for the adjuncts POM needs Media Processing Platform (MPP) Session Manager (SM) Communication Manager (CM) Application Enablement Service (AES) products to provide an outbound dialer solution along with recording As shown above POM leverages the platform features and web services to perform the outbound operations For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP which in turn sends SIP invite to SM all the way to CM Also POM fetches the agent login and skill details using the AES SMS web service POM interacts with CMS via socket and uses rt_socket package to receive the skill feeds of the agents whose skills are configured and monitored in POM for blending operation POM interacts with ACR (sample recording application in the above diagram) over socket connection to send any recording events and ACR uses Device Media Call Control (DMCC) service of AES to trigger the call recording ACR receives the media stream from the media gateway (be it the Avaya Media server (AMS) or a G series gateway) registered with the CM For details please refer to material listed in Reference Material section for administration and provisioning documentation for these products For ease of understanding an agent based outbound call flow - explaining basic POM concepts in context of recording is explained below In order to work on any agent based outbound call POM first registers the agent also referred to as lsquonail the agentrsquo The agent nailing flow is depicted below

Figure 3 POM nailing request ndash call flow

The POM Nailer application is a CCXML application shipped as one of the POM suite of applications using for running outbound call campaigns Nailer is responsible for placing the call to an agent prior to running an agent based campaign Nailing refers to keeping an agent connection alive during multiple outbound calls during the outbound calling campaign The call is initiated using a SIP INVITE sent by MPP to CM which results in RTP established between the MPP and the CM (or more specifically the gateway registered with CM) Once the agent is nailed to call from POM POM utilizes this agent for working on customer calls There are 3 types of agent based calls in POM namely preview predictive and progressive In preview the agent is first connected by POM and then the customer information is provided to the agent by POM and agent chooses to dial the customer Whereas in progressive and predictive the customer is first connecteddialed by POM and once connected POM identifies the best suitable agent to talk to the customer using skills based routing Call flows explaining the customer call connect and patching the agent with the customer is depicted below

Figure 4 POM dialing customer ndash call flow

POM requests the platform to send INVITE to the customer and create the customerrsquos call leg Now the customer and the agent leg are connected as a conference on the MPP hosting the agent POM uses INVITE with REPLACE to achieve this

Figure 5 POM agent talking to customer ndash call flow

Every call between the customer and a nailed agent is a conference on the MPP POMrsquos nailer app requests EP to initiate an INVITE wt REPLACE as soon as it finds best agent to work on the customer call Thus conceptually recording a call is adding the recorder application as one of the participants to the conference created between a customer and a nailed agent however the physical implementation of this is not via a conference on the MPP but rather using the DMCC protocol available on CM Thus a conference is formed on communication manager between the customer the call from the MPP which is connected to the agent via CM and the call recorder via a DMCC station that was registered by AE Services to Communication Manager Once an agent is done with working on a call heshe can wrap-up the call and enter the dispositioncompletion details of the call Note that the inter-working of DMCC is out of scope of this document please refer Related Documents section This section covered in nutshell the basic concepts of POM nailing agentcustomer connections and previewprogressivepredictive dialing and wrap-up in context of agent based outbound operations

3 POM and Recorder Application Integration Design

31 Getting started This section covers the pre-requisites for any recorder application to integrate and receive call related events from POM for the purpose of call recording

311 InstallUpgrade POM First things first installupgrade to latest POM version Please refer Implementing POM and Using POM product documents available on supportavayacom

312 Configure Communication Manager and Application Enablement Services

Configure Communication Manager and Application Enablement Services as explained in reference document Application Notes to Integrate Avaya Contact Recorder 120 with Avaya Proactive Outreach Manager 30 using Avaya Aurareg Application Enablement Services 63 ndash Issue 11 available on Dev connect

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

workflows or processes for use with Avaya products integration of such applications interfaces workflows and processes with Avaya products and interoperability testing of the foregoing with Avaya products (ii) Licensee must ensure that the modifications made to the Sample Application Code as permitted in clause (i) of this Section 21B are compatible andor interoperable with Avaya products andor integrated therewith (iii) Licensee may compile or otherwise prepare for distribution the Sample Application Code with Permitted Modifications into an object code or other suitable program format for distribution provided that such sublicense is subject to an end user license agreement that is consistent with the terms of this Agreement and if applicable the Avaya DevConnect Program Agreement and is equally as protective as Licenseersquos standard software license terms but in no event shall the standard of care be less than a reasonable degree of care Under no circumstances shall Licensee enable the use or activation of any of Avayarsquos Intellectual Property by an end user without such end user having acquired the additional necessary licenses to Avaya Intellectual Property Avayarsquos support obligations for the SDK Sample Application Code and any Derivative Works are set forth in Section 4 of this Agreement C Except as expressly authorized by this Agreement and unless otherwise permitted by the applicable law Licensee shall not (i) translate publish or display the SDK Specification Documents or Documentation or any copy or part thereof or (ii) use modify or distribute the redistributable Client Libraries in any manner that causes any portion of the redistributable Client Libraries that is not already subject to an OSS license to become subject to the terms of any OSS license D Licensee agrees that it is licensed to use the SDK only in connection with Avaya products (and if applicable in connection with services provided under the Avaya DevConnect Program Agreement) In the event of any conflict between the terms and conditions of this Agreement and the Avaya DevConnect Program Agreement (if applicable) the terms and conditions of the Avaya DevConnect Program Agreement shall prevail E With respect to Software that contains elements provided by third party suppliers Licensee may install and use the Software in accordance with the terms and conditions of the applicable license agreements such as ldquoshrinkwraprdquo or ldquoclick-throughrdquo licenses accompanying or applicable to the Software F Avaya shall have the right at its cost and expense to inspect andor audit (i) by remote polling or other reasonable electronic means at any time and (ii) in person during normal business hours and with reasonable notice Licenseersquos books records and accounts to determine Licenseersquos compliance with this Agreement In the event such inspection or audit uncovers non-compliance with this Agreement then without prejudice to Avayarsquos termination rights hereunder Licensee shall promptly pay Avaya any applicable license fees Licensee agrees to keep a current record of the location of the SDK

22 No Standalone Product Nothing in this Agreement authorizes

or grants Licensee any rights to distribute or otherwise make available

to a third party the SDK in whole or in part or any Derivative Work

in source or object code format on a standalone basis other than the

modifications permitted in Section 21B of this Agreement 23 Proprietary Notices Licensee shall not remove any copyright trade mark or other proprietary notices incorporated in the copies of the SDK Sample Application Code and redistributable files in Licenseersquos possession or control or any modifications thereto Redistributions in binary form or other suitable program format for distribution to the extent expressly permitted must also reproduce Avayarsquos copyright trademarks or other proprietary notices as incorporated in the SDK in any associated Documentation or ldquosplash screensrdquo that display Licensee copyright notices 24 Third-Party Components You acknowledge certain software programs or portions thereof included in the SDK may contain software distributed under third party agreements (ldquoThird Party Componentsrdquo) which may contain terms that

expand or limit rights to use certain portions of the SDK (ldquoThird Party Termsrdquo) Information identifying the copyright holders of the Third Party Components and the Third Party Terms that apply is available in the attached Schedule 1 (if any) SDK Documentation or on Avayarsquos web site at httpsupportavayacomCopyright (or such successor site as designated by Avaya) The open source software license terms provided as Third Party Terms are consistent with the license rights granted in this Agreement and may contain additional rights benefiting You such as modification and distribution of the open source software The Third Party Terms shall take precedence over this Agreement solely with respect to the applicable Third Party Components to the extent that this Agreement imposes greater restrictions on You than the applicable Third Party Terms Licensee is solely responsible for procuring any necessary licenses for Third Party Components including payment of licensing royalties or other amounts to third parties for the use thereof 25 Copies of SDK Licensee may copy the SDK only as necessary to exercise its rights hereunder provided however that Licensee may also make one (1) copy for back-up purposes and any reproduction of the SDK (including derivatives thereof) either in whole or in part shall include the Avaya copyright notice that was provided in the SDK 26 No Reverse Engineering Licensee shall have no rights to any Source Code for any of the software in the SDK except for the explicit rights to use the Source Code as provided to Licensee hereunder Licensee agrees that it shall not cause or permit the disassembly decompilation or reverse engineering of the Software Notwithstanding the foregoing if the SDK is rightfully located in a member state of the European Union and Licensee needs information about the Software in the SDK in order to achieve interoperability of an independently created software program with the Software in the SDK Licensee will first request such information from Avaya Avaya may charge Licensee a reasonable fee for the provision of such information If Avaya refuses to make such information available then Licensee may take steps such as reverse assembly or reverse compilation to the extent necessary solely in order to achieve interoperability of the Software in the SDK with an independently created software program To the extent that the Licensee is expressly permitted by applicable mandatory law to undertake any of the activities listed in this section Licensee will not exercise those rights until Licensee has given Avaya twenty (20) days written notice of its intent to exercise any such rights 27 Responsibility for Development Tools Licensee acknowledges that effective utilization of the SDK may require the use of a development tool compiler and other software and technology of third parties which may be incorporated in the SDK pursuant to Section 24 Licensee is solely responsible for procuring such third party software and technology and the necessary licenses including payment of licensing royalties or other amounts to third parties for the use thereof 28 US Government End Users The SDK shall be classified as commercial computer software and the Documentation is classified as commercial computer software documentation or commercial items pursuant to FAR 12212 or DFAR 2277202 as applicable Any use modification reproduction release performance display or disclosure of the SDK or Documentation by the Government of the United States shall be governed solely by the terms of the Agreement and shall be prohibited except to the extent expressly permitted by the terms of the Agreement 29 Limitation of Rights No right is granted to Licensee to sublicense its rights hereunder All rights not expressly granted are reserved by Avaya and except as expressly set forth herein no license is granted by Avaya under this Agreement directly by implication estoppel or otherwise under any patent copyright trade secret or trademark or other Intellectual Property right of Avaya Nothing herein shall be deemed to authorize Licensee to use Avayas trademarks or trade names in Licensees advertising marketing promotional sales or related materials 210 Nonassertion by Licensee Licensee agrees not to assert any patent rights related to the SDK or applications developed using the SDK against Avaya Avayas distributors Avaya customers or other licensees of the SDK for making using selling offering for sale or importing any products or technology developed using the SDK

211 Avaya Independent Development Licensee understands and agrees that Avaya or its Affiliates may acquire license develop for itself or have others develop for it and market andor distribute similar software to that which Licensee may develop In absence of a separate written agreement to the contrary Avaya or its Affiliates will be free to use any information Licensee provides including problem reports or enhancement requests to Avaya for any purpose subject to any applicable patents or copyrights 212 Feedback and Support Licensee agrees to provide any comments and suggestions regarding the performance of the SDK (a) if applicable on the developer forum of the DevConnect Program on wwwavayacomdevconnect or (b) via the process otherwise indicated by Avaya with respect to the SDK Avaya agrees to monitor the applicable forum but is under no obligation to implement any of the suggestions andor proposals or be required to respond to any questions asked in the forum Self-support tools are available via the Avaya DevConnect programrsquos portal and requires self registration Licensee hereby assigns to Avaya all right title and interest in and to Feedback provided to Avaya 213 Fees and Taxes To the extent that fees are associated with the license of the SDK Licensee agrees to pay to Avaya or pay directly to the applicable government or taxing authority if requested by Avaya all taxes and charges including without limitation penalties and interest which may be imposed by any federal state or local governmental or taxing authority arising hereunder excluding however all taxes computed upon Avayarsquos net income If You move any Software including the SDK and as a result of such move a jurisdiction imposes a duty tax levy or fee (including withholding taxes fees customs or other duties for the import and export of any such Software) then You are solely liable for and agree to pay any such duty taxes levy or other fees 214 No Endorsement Neither the name Avaya its Affiliates nor the names of contributors may be used to endorse or promote products derived from the Avaya SDK without specific prior written permission from Avaya 215 High Risk Activities The Avaya SDK is not fault-tolerant and is not designed manufactured or intended for use or resale as on-line control equipment or in hazardous environments requiring failsafe performance such as in the operation of nuclear facilities aircraft navigation or aircraft communications systems mass transit air traffic control medical or direct life support machines dedicated emergency call handling systems or weapons systems in which the failure of the Avaya SDK could lead directly to death personal injury or severe physical or environmental damage (high risk activities) If Licensee uses the Avaya SDK for high risk activities Licensee does so at Licenseersquos own risk and Licensee assumes all responsibility and liability for such use to the maximum extent such limitation or exclusion is permitted by applicable law Licensee agrees that Avaya and its suppliers will not be liable for any claims or damages arising from or related to use of the Avaya SDK for high risk activities to the maximum extent such limitation or exclusion is permitted by law 216 No Virus Licensee warrants that (i) the applications interfaces value-added services andor solutions workflows or processes Licensee develops using this SDK will not contain any computer program file that includes time code limitations disabling devices or any other mechanism which will prevent the Supplier Software from being functional at all times (collectively ldquoTime Bombsrdquo) and (ii) the applications interfaces value-added services andor solutions workflows or processes Licensee develops using this SDK will be free of computer viruses black boxes malware trapdoors and other mechanisms to allow remotehidden attacks or access through unauthorized computerized command and control and will not contain any other computer software routines designed to spy monitor traffic (network sniffers keyloggers) damage or erase such applications interfaces value-added services andor solutions workflows or processes developed using this SDK or data or any computer files or systems of Avaya its Affiliates andor end users (collectively ldquoVirusrdquo) In addition to any other remedies permitted in the Agreement if Licensee breaches its warranties under this Section Licensee will at its expense take remedial action to eliminate any Time Bombs andor Viruses and prevent re-occurrence (including implementing appropriate processes to prevent further occurrences) as well

as provide prompt reasonable assistance to Avaya to materially reduce the effects of the Time Bomb andor Virus 217 Disclaimer Any software security feature is not a guaranty against malicious code deleterious routines and other techniques and tools employed by computer ldquohackersrdquo and other third parties to create security exposures Compromised passwords represent a major security risk Avaya encourages You to create strong passwords using three different character types change Your password regularly and refrain from using the same password regularly You must treat such information as confidential You agree to notify Avaya immediately upon becoming aware of any unauthorized use or breach of Your user name password account or subscription You are responsible for ensuring that Your networks and systems are adequately secured against unauthorized intrusion or attack and regularly back up of Your data and files in accordance with good computing practices 3 OWNERSHIP 31 As between Avaya and Licensee Avaya or its licensors shall own and retain all proprietary rights including all patent copyright trade secret trademark and other Intellectual Property rights in and to the SDK and any corrections bug fixes enhancements updates improvements or modifications thereto and Licensee hereby irrevocably transfers conveys and assigns to Avaya all of its right title and interest therein Avaya shall have the exclusive right to apply for or register any patents mask work rights copyrights and such other proprietary protections with respect thereto Licensee acknowledges that the license granted under this Agreement does not provide Licensee with title or ownership to the SDK but only a right of limited use under the terms and conditions of this Agreement 32 Grant Back License to Avaya Licensee hereby grants to Avaya an irrevocable perpetual non-exclusive sub-licensable royalty-free worldwide license under any and all of Licensees Intellectual Property rights related to any Permitted Modifications to use employ practice make have made sell andor otherwise exploit any and all Permitted Modifications 40 SUPPORT Avaya will not provide any support for the SDK provided under this Agreement or for any Derivative Works including without limitation modifications to the Source Code or applications built by Licensee using the SDK Notwithstanding the above limitations Avaya shall have no obligation to provide support for the use of the SDK or Licensees derivative application services or solutions which may or may not include redistributable Client Libraries or Sample Application Code to any third party to whom Licensee delivers such derivative applications services or solutions Avaya further will not provide fixes patches or repairs for any defects that might exist in the SDK or the Sample Application Code provided under this Agreement In the event that Licensee desires support services for the SDK and provided that Avaya offers such support services (in its sole discretion) Licensee will be required to enter into a Avaya DevConnect Program Agreement or any support agreement with Avaya Nothing herein shall be construed to require Avaya to provide support services or updates upgrades bug fixes or modifications to the SDK 50 CONFIDENTIALITY 51 Protection of Confidential Information Licensee shall take all reasonable measures to maintain the confidentiality of the SDK Specification Documents and other Avaya technical information obtained by it (collectively the ldquoConfidential Informationrdquo) and will not disclose the Confidential Information to any third party Licensee agrees at all times to protect and preserve the SDK in strict confidence and perpetually and shall not use such Confidential Information other than as expressly authorized by Avaya under this Agreement nor shall Licensee disclose any such Confidential Information to third parties without Avayas written consent Licensee further agrees to immediately return to Avaya all Confidential Information (including copies thereof) in Licensees possession custody or control upon termination of this Agreement at any time and for any reason The obligations of confidentiality shall not apply to information which (a) has entered the public domain except where such entry is the result of Licensees breach of this Agreement (b) prior to disclosure hereunder was already rightfully in Licensees possession (c) subsequent to disclosure hereunder is obtained by Licensee on a non-confidential basis from a third party who has the right to disclose such information

to the Licensee (d) is required to be disclosed pursuant to a court order so long as Avaya is given adequate notice and the ability to challenge such required disclosure 52 Press Releases Any press release or publication regarding this Agreement is subject to prior review and written approval of Avaya 60 NO WARRANTY The SDK and Documentation are provided ldquoAS-ISrdquo without any warranty whatsoever AVAYA SPECIFICALLY AND EXPRESSLY DISCLAIMS ANY WARRANTIES OR CONDITIONS STATUTORY OR OTHERWISE INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE NONINFRINGEMENT AND SATISFACTORY QUALITY AVAYA DOES NOT WARRANT THAT THE SDK AND DOCUMENTATION ARE SUITABLE FOR LICENSEES USE THAT THE SDK OR DOCUMENTATION ARE WITHOUT DEFECT OR ERROR THAT OPERATION WILL BE UNINTERRUPTED OR THAT DEFECTS WILL BE CORRECTED FURTHER AVAYA MAKES NO WARRANTY REGARDING THE RESULTS OF THE USE OF THE SDK AND DOCUMENTATION NEITHER AVAYA NOR ITS SUPPLIERS MAKE ANY WARRANTY EXPRESS OR IMPLIED THAT SECURITY THREATS AND VULNERABILITIES WILL BE DETECTED OR SOFTWARE WILL RENDER AN END USERrsquoS OR LICENSEErsquoS NETWORK OR PARTICULAR NETWORK ELEMENTS SAFE FROM INTRUSIONS AND OTHER SECURITY BREACHES 70 CONSEQUENTIAL DAMAGES WAIVER EXCEPT FOR PERSONAL INJURY CLAIMS AND WILLFUL MISCONDUCT AVAYA SHALL NOT BE LIABLE FOR ANY INCIDENTAL INDIRECT SPECIAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH ARISING OUT OF OR RELATING TO THIS AGREEMENT OR USE OF THE SDK OR FOR THE LOSS OR CORRUPTION OF DATA INFORMATION OF ANY KIND BUSINESS PROFITS OR OTHER COMMERCIAL LOSS HOWEVER CAUSED AND WHETHER OR NOT AVAYA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 80 LIMITATION OF LIABILITY EXCEPT FOR PERSONAL INJURY CLAIMS AND WILLFUL MISCONDUCT IN NO EVENT SHALL AVAYAS TOTAL LIABILITY TO LICENSEE IN CONNECTION WITH ARISING OUT OF OR RELATING TO THIS AGREEMENT EXCEED FIVE HUNDRED DOLLARS ($500) THE PARTIES AGREE THAT THE LIMITATIONS SPECIFIED IN THIS SECTION WILL APPLY EVEN IF ANY LIMITED REMEDY PROVIDED IN THIS AGREEMENT IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE 90 INDEMNIFICATION Licensee shall indemnify and hold harmless Avaya its Affiliates and their respective officers directors agents suppliers customers and employees from and against all claims damages losses liabilities costs expenses and fees (including fees of attorneys and other professionals) arising from or relating to Licenseersquos use of the SDK with other software such as operating systems and codecs and the direct or indirect distribution or sale of software Derivative Works or other products (including but not limited to applications interfaces and application programming interfaces) developed utilizing the SDK including but not limited to products liability claims and claims of infringement of third party Intellectual Property rights 100 TERM AND TERMINATION 101 This Agreement will continue through December 31

st of the

current calendar year The Agreement will automatically renew for one (1) year terms and run concurrently with Licenseersquos membership in the Avaya DevConnect Program if applicable unless terminated as specified in Section 102 or 103 below and if applicable provided Licensee is a member of the Avaya DevConnect Program in a good-standing as determined by Avaya at its sole discretion 102 Either party shall have the right to terminate the Agreement upon thirty (30) days written notice to the other party 103 Notwithstanding language to the contrary Avaya may terminate this Agreement immediately upon written notice to Licensee for breach of Section 2 (License Grant) Section 5 (Confidentiality) or Section 12 (Compliance with Laws) Avaya may also terminate this license by giving written notice if a

Change In Control should occur or if Licensee becomes insolvent or voluntary or involuntary proceedings by or against Licensee are instituted in bankruptcy or under any insolvency law or a receiver or custodian is appointed for Licensee or proceedings are instituted by or against Licensee for corporate reorganization or the dissolution of Licensee which proceedings if involuntary have not been dismissed within thirty (30) days after the date of filing or Licensee makes an assignment for the benefit of its creditors or substantially all of the assets of Licensee are seized or attached and not released within sixty (60) days thereafter or if Licensee has ceased or threatened to cease to do business in the regular course 104 Upon termination of this Agreement Licensee will immediately cease using the SDK Development Kit and Licensee agrees to destroy all adaptations or copies of the SDK and Documentation or return them to Avaya upon termination of this License 105 The rights and obligations of the parties contained in Sections 23 26 27 210 211 3 and 5 through 18 shall survive any expiration or termination of this Agreement 110 ASSIGNMENT Avaya may assign all or any part of its rights and obligations hereunder Licensee may not assign this Agreement or any interest or rights granted hereunder to any third party without the prior written consent of Avaya The term assign includes but is not limited to any transaction in which there is a Change In Control or reorganization of Licensee pursuant to a merger sale of assets or stock This Agreement shall terminate immediately upon occurrence of any prohibited assignment 120 COMPLIANCE WITH LAWS Licensee shall comply with all applicable laws and regulations including without limitation those applicable to data privacy intellectual property trade secret fraud music performance rights and the export or re-export of technology and will not export or re-export the SDK or any other technical information provided under this Agreement in any form in violation of the export control laws of the United States of America and of any other applicable country For more information on such export laws and regulations Licensee may refer to the resources provided in the websites maintained by the US Commerce Department the US State Department and the US Office of Foreign Assets Control 130 WAIVER The failure to assert any rights under this Agreement including but not limited to the right to terminate in the event of breach or default will not be deemed to constitute a waiver of the right to enforce each and every provision of this Agreement in accordance with their terms 140 SEVERABILITY If any provision of this Agreement is determined to be unenforceable or invalid this Agreement will not be rendered unenforceable or invalid as a whole and the provision will be changed and interpreted so as to best accomplish the objectives of the original provision within the limits of applicable law 150 GOVERNING LAW AND DISPUTE RESOLUTION This Agreement and any dispute claim or controversy arising out of or relating to this Agreement (Dispute) including without limitation those relating to the formation interpretation breach or termination of this Agreement or any issue regarding whether a Dispute is subject to arbitration under this Agreement will be governed by New York State laws excluding conflict of law principles and the United Nations Convention on Contracts for the International Sale of Goods Any Dispute shall be resolved in accordance with the following provisions The disputing party shall give the other party written notice of the Dispute The parties will attempt in good faith to resolve each Dispute within thirty (30) days or such other longer period as the parties may mutually agree following the delivery of such notice by negotiations between designated representatives of the parties who have dispute resolution authority If a Dispute that arose anywhere other than in the United States or is based upon an alleged breach committed anywhere other than in the United States cannot be settled under these procedures and within these timeframes it will be conclusively determined upon request of either party by a final and binding arbitration proceeding to be held in accordance with the Rules of Arbitration of the International Chamber of Commerce by a single arbitrator appointed by the parties or (failing agreement) by an arbitrator appointed by the President

of the International Chamber of Commerce (from time to time) except that if the aggregate claims cross claims and counterclaims by any one party against any or all other parties exceed One Million US Dollars at the time all claims including cross claims and counterclaims are filed the proceeding will be held in accordance with the Rules of Arbitration of the International Chamber of Commerce by a panel of three arbitrator(s) appointed in accordance with the Rules of Arbitration of the International Chamber of Commerce The arbitration will be conducted in the English language at a location agreed by the parties or (failing agreement) ordered by the arbitrator(s) The arbitrator(s) will have authority only to award compensatory damages within the scope of the limitations of this Agreement and will not award punitive or exemplary damages The arbitrator(s) will not have the authority to limit expand or otherwise modify the terms of this Agreement The ruling by the arbitrator(s) will be final and binding on the parties and may be entered in any court having jurisdiction over the parties or any of their assets The parties will evenly split the cost of the arbitrator(s) fees but each party will bear its own attorneys fees and other costs associated with the arbitration The parties their representatives other participants and the arbitrator(s) will hold the existence content and results of the arbitration in strict confidence to the fullest extent permitted by law Any disclosure of the existence content and results of the arbitration shall be as limited and narrowed as required to comply with the applicable law By way of illustration if the applicable law mandates the disclosure of the monetary amount of an arbitration award only the underlying opinion or rationale for that award may not be disclosed If a Dispute by one party against the other that arose in the United States or is based upon an alleged breach committed in the United States cannot be settled under the procedures and within the timeframe set forth above then either party may bring an action or proceeding solely in either the Supreme Court of the State of New York New York County or the United States District Court for the Southern District of New York Except as otherwise stated above with regard to arbitration of Disputes that arise anywhere other than in the United States or are based upon an alleged breach committed anywhere other than in the United States each party to this Agreement consents to the exclusive jurisdiction of those courts including their appellate courts for the purpose of all actions and proceedings The parties agree that the arbitration provision in this section may be enforced by injunction or other equitable order and no bond or security of any kind will be required with respect to any such injunction or order Nothing in this section will be construed to preclude either party from seeking provisional remedies including but not limited to temporary restraining orders and preliminary injunctions from any court of competent jurisdiction in order to protect its rights including its rights pending arbitration at any time In addition and notwithstanding the foregoing Avaya shall be entitled to take any necessary legal action at any time including without limitation seeking immediate injunctive relief from a court of competent jurisdiction in order to protect Avayas intellectual property and its confidential or proprietary information (including but not limited to trade secrets) 160 IMPORTEXPORT CONTROL Licensee is advised that the SDK is of US origin and subject to the US Export Administration Regulations (ldquoEARrdquo) The SDK also may be subject to applicable local country importexport laws and regulations Diversion contrary to US andor applicable local country law andor regulation is prohibited Licensee agrees not to directly or indirectly export re-export import download or transmit the SDK to any country end user or for any use that is contrary to applicable US andor local country regulation or statute (including but not limited to those countries embargoed by the US government) Licensee represents that any governmental agency has not issued sanctions against Licensee or otherwise suspended revoked or denied Licensees importexport privileges Licensee agrees not to use or transfer the SDK for any use relating to nuclear chemical or biological weapons or missile technology unless authorized by the US andor any applicable local government by regulation or specific written license Additionally Licensee is advised that the SDK may contain encryption algorithm or source code that may not be exported to government or military

end users without a license issued by the US Bureau of Industry and Security and any other countryrsquos governmental agencies where applicable 170 AGREEMENT IN ENGLISH The parties confirm that it is their wish that the Agreement as well as all other documents relating hereto including all notices have been and shall be drawn up in the English language only Les parties aux preacutesentes confirment leur volonteacute que cette convention de mecircme que tous les documents y compris tout avis qui sy rattachent soient reacutedigeacutes en langue anglaise 180 ENTIRE AGREEMENT This Agreement its exhibits and other agreements or documents referenced herein constitute the full and complete understanding and agreement between the parties and supersede all contemporaneous and prior understandings agreements (excluding the Avaya DevConnect Program Agreement) and representations relating to the subject matter hereof No modifications alterations or amendments shall be effective unless in writing signed by both parties to this Agreement 19 REDISTRIBUTABLE CLIENT FILES The list of SDK client files that can be redistributed if any are in the SDK in a file called Redistributabletxt

Table of Contents

Table of Figures 8 1 About this document 9

11 Scope of the document 9 12 Intended audience 10 13 Conventions used in the document 10 14 Related documents 10 15 Providing documentation feedback 10 16 Historical View 10

2 Architecture Overview 11 3 POM and Recorder Application Integration Design 14

31 Getting started 14 311 InstallUpgrade POM 14 312 Configure Communication Manager and Application Enablement Services 14 313 Configure POM 15

32 Connecting POM and Recorder Application 17 321 POM deployment with recorder 17 322 TCP based connection 18 323 TLS based secured connection 19 324 Verify connection between POM and Recorder 21 325 Link failure and recovery 22

33 Recording per Zone 22 34 Failure and Recovery 25

341 POM Server Failure 25 342 Recorder application failure 26

35 High Availability 27 351 POM server failover 27 352 Zone failover 29

36 Licensing 30 4 POM Recording Events 31

41 Recorder login and listing agents 31 411 LoginRequest Event 32 412 LoginResponse Event 33 413 ListAgentsRequest Event 33 414 ListAgentsResponse Event 34 415 Logout 34

42 Agent states and associated recording events 35 421 AgentAcquire Event 35 422 AgentRelease Event 35 423 MediaInfo Event 36 424 MediaComplete Event 37

5 POM Call Scenarios 38 51 Scenario Agent working on call 38 52 Scenario Agent holds while working on call 40 53 Scenario Agent consulttransfer while working on call 43 54 Scenario Agent consultconference while working on call 47

6 Sample Client 52 7 Limitations 52 Appendix A ndash Glossary 53 Appendix B ndash Content out of scope 54 Appendix C ndash Troubleshooting 54

Table of Figures Figure 1 Solution architecture view of POM with CC-Elite 11 Figure 2 Solution architecture view of POM with AACC 12 Figure 3 POM nailing request ndash call flow 13 Figure 4 POM dialing customer ndash call flow 13 Figure 5 POM agent talking to customer ndash call flow 14 Figure 6 Global configuration 15 Figure 7 Enable recorder 15 Figure 8 Edit NailerDriver application 16 Figure 9 Generate UCID settings 16 Figure 10 Single POM and recorder application deployment view 17 Figure 11 Multiple POM and recorder application deployment view 18 Figure 12 Connection sequence between POM and recorder application 19 Figure 13 Enable secured connection with recorder 20 Figure 14 POM certificate export option 20 Figure 15 Successful TCP connection established between POM and Recorder 21 Figure 16 Successful TLS connection established between POM and Recorder 21 Figure 17 Multiple POM zonal deployment with recorder 23 Figure 18 All zone configuration 24 Figure 19 Comma separated zone configuration 24 Figure 20 Recording events for configured zones 24 Figure 21 POM server failure 25 Figure 22 Recorder application failure 26 Figure 23 Primary and Aux POM servers connected with recorder 27 Figure 24 Failover of POM server managing zone 28 Figure 25 Zone failover 30 Figure 26 Sequence to receive events with registered agent details 31 Figure 27 Sequence to receive events and request for registered agent details 32 Figure 28 LoginRequest XML message 33 Figure 29 LoginResponse XML message 33 Figure 30 ListAgentsRequest XML message 34 Figure 31 ListAgentsResponse XML message 34 Figure 32 AgentAcquireEvent XML message 35 Figure 33 AgentReleaseEvent XML message 36 Figure 34 MediaInfoEvent XML message 37 Figure 35 MediaCompleteEvent XML message 38 Figure 36 Scenario Agent working on call 39 Figure 37 Scenario Agent puts customer on hold 41 Figure 38 Scenario Agent consults with other agent 44 Figure 39 Scenario Agent conferencing other agent 48

1 About this document This chapter describes

Scope of the document

Intended audience

Conventions used in the document

Related documents

Providing documentation feedback

Historical view

11 Scope of the document This document gives details of design and APIs provided by Proactive Outreach Manager (POM) for integration with any third party voice call recorder Proactive Outreach Manager is an outbound dialer and provides agent based as well as agent less dialing as one of its key feature Please note prior to POM 304 only Avaya Recorder was supported for call recording in POM 301 In POM 304 and above support is added for third-party call recording solutions Note Recording feature available in POM 30 allows the recording application to connect with POM over a TCP connection whereas the POM 304 enhances this by providing TLS based connection apart from the support for TCP to be backward compatible This document covers solution architecture and key concepts of POM integration design of POM and recorder the recording events various call scenarios and troubleshooting techniques as part of below chapters

Chapter 2 Architecture Overview - introduces the solution deployment architecture for general awareness of POM concepts and prerequisites for agent based dialing operations

Chapter 3 POM and Recorder Application Integration Design ndash details the design of the POM components interacting with the recording application elaborating the logical sequence of basic call flow and recording activities It also covers the multi-server deployment failover scenarios and zoning with respect to integration of POM with any recording application

Chapter 4 POM Recording Events - details all possible recording events in the form of APIs provided by POM

Chapter 5 POM Call Scenarios - covers various agent based call scenarios and the unlined sequence of messages

Chapter 6 Sample Client ndash explains the sample client code for the recording application developersintegrators

Chapter 7 Limitations and Caveats ndash describes potential enhancements in POM recorder integration design

Note This document does not cover administration and configuration details of aura products Avaya Auratrade Communication Manager Avaya Auratrade Enablement Services Avaya Contact Recorder These documents are called out in the related documents chapter

12 Intended audience This document is developed for deployment engineers and recording application developers in order to enable them in integrating recorder application with Proactive Outreach Manager The audience of this document is expected to know

Java

XML

Proactive Outreach Manager Solution overview

Avaya Aura components like Application Enablement Service Communication Manager Session Manager and System Manager

13 Conventions used in the document The following fonts are used in this document

To represent This font is used

Document Name Document Name(ex Using POM)

Linux commands Command (ex sbinservice POM restart)

Java Code javanetSocket

Note Note

Event NamesXml Event name (ex LoginRequest)

14 Related documents Document Description

CM Admin Guide Administering Avaya Aurareg Communication Manager

SM Admin Guide Administering Avaya Aurareg Session Manager

EPMPP Admin Guide Administering Avaya Aurareg Experience Portal

AES Admin Guide Administering and Maintaining Avaya Aurareg Application Enablement Services

Guide on DMCC Avaya Aurareg Application Enablement Services

ACR Admin Guide Avaya Contact Recorder Release 151 Planning Installation and Administration Guide

POM design and product documents Using Proactive Outreach Manager

15 Providing documentation feedback Let us know what you like or do not like about this document Although we cannot respond personally to all your feedback we promise we read each response we receive Please email feedback to documentavayacom

16 Historical View POM Release Support Purpose

301 TCP based integration with Minimum version of

Avaya Contact Recorder (ACR)

POM required for POM-Recorder integration is 301

Integration supported with ACR only

Integration between POM and ACR is based on TCP protocol

304 and above TLS based integration with third party recorder

Enhanced to support TLS based integration with third party recorder

Supports backward compatibility for TCP based integration with ACR

2 Architecture Overview This section describes the solution architecture of POM highlighting the adjunct products required for POM It also covers the basic concepts of POM used in the context of call recording functionality There are two deployment scenarios one with Avaya Contact Center Elite (CCElite) and another with Avaya Aura Contact Center (AACC) Following diagram gives the architectural view of POM with CCElite and ACR as the call recorder highlighting the adjuncts required for POM to function

Figure 1 Solution architecture view of POM with CC-Elite

Below diagram gives the architectural view of POM with AACC and ACR as the recorder highlighting the adjuncts required for POM to function

Figure 2 Solution architecture view of POM with AACC

As depicted in the above 2 diagrams POM is deployed as a managed application on Experience Portal as the platform As for the adjuncts POM needs Media Processing Platform (MPP) Session Manager (SM) Communication Manager (CM) Application Enablement Service (AES) products to provide an outbound dialer solution along with recording As shown above POM leverages the platform features and web services to perform the outbound operations For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP which in turn sends SIP invite to SM all the way to CM Also POM fetches the agent login and skill details using the AES SMS web service POM interacts with CMS via socket and uses rt_socket package to receive the skill feeds of the agents whose skills are configured and monitored in POM for blending operation POM interacts with ACR (sample recording application in the above diagram) over socket connection to send any recording events and ACR uses Device Media Call Control (DMCC) service of AES to trigger the call recording ACR receives the media stream from the media gateway (be it the Avaya Media server (AMS) or a G series gateway) registered with the CM For details please refer to material listed in Reference Material section for administration and provisioning documentation for these products For ease of understanding an agent based outbound call flow - explaining basic POM concepts in context of recording is explained below In order to work on any agent based outbound call POM first registers the agent also referred to as lsquonail the agentrsquo The agent nailing flow is depicted below

Figure 3 POM nailing request ndash call flow

The POM Nailer application is a CCXML application shipped as one of the POM suite of applications using for running outbound call campaigns Nailer is responsible for placing the call to an agent prior to running an agent based campaign Nailing refers to keeping an agent connection alive during multiple outbound calls during the outbound calling campaign The call is initiated using a SIP INVITE sent by MPP to CM which results in RTP established between the MPP and the CM (or more specifically the gateway registered with CM) Once the agent is nailed to call from POM POM utilizes this agent for working on customer calls There are 3 types of agent based calls in POM namely preview predictive and progressive In preview the agent is first connected by POM and then the customer information is provided to the agent by POM and agent chooses to dial the customer Whereas in progressive and predictive the customer is first connecteddialed by POM and once connected POM identifies the best suitable agent to talk to the customer using skills based routing Call flows explaining the customer call connect and patching the agent with the customer is depicted below

Figure 4 POM dialing customer ndash call flow

POM requests the platform to send INVITE to the customer and create the customerrsquos call leg Now the customer and the agent leg are connected as a conference on the MPP hosting the agent POM uses INVITE with REPLACE to achieve this

Figure 5 POM agent talking to customer ndash call flow

Every call between the customer and a nailed agent is a conference on the MPP POMrsquos nailer app requests EP to initiate an INVITE wt REPLACE as soon as it finds best agent to work on the customer call Thus conceptually recording a call is adding the recorder application as one of the participants to the conference created between a customer and a nailed agent however the physical implementation of this is not via a conference on the MPP but rather using the DMCC protocol available on CM Thus a conference is formed on communication manager between the customer the call from the MPP which is connected to the agent via CM and the call recorder via a DMCC station that was registered by AE Services to Communication Manager Once an agent is done with working on a call heshe can wrap-up the call and enter the dispositioncompletion details of the call Note that the inter-working of DMCC is out of scope of this document please refer Related Documents section This section covered in nutshell the basic concepts of POM nailing agentcustomer connections and previewprogressivepredictive dialing and wrap-up in context of agent based outbound operations

3 POM and Recorder Application Integration Design

31 Getting started This section covers the pre-requisites for any recorder application to integrate and receive call related events from POM for the purpose of call recording

311 InstallUpgrade POM First things first installupgrade to latest POM version Please refer Implementing POM and Using POM product documents available on supportavayacom

312 Configure Communication Manager and Application Enablement Services

Configure Communication Manager and Application Enablement Services as explained in reference document Application Notes to Integrate Avaya Contact Recorder 120 with Avaya Proactive Outreach Manager 30 using Avaya Aurareg Application Enablement Services 63 ndash Issue 11 available on Dev connect

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

211 Avaya Independent Development Licensee understands and agrees that Avaya or its Affiliates may acquire license develop for itself or have others develop for it and market andor distribute similar software to that which Licensee may develop In absence of a separate written agreement to the contrary Avaya or its Affiliates will be free to use any information Licensee provides including problem reports or enhancement requests to Avaya for any purpose subject to any applicable patents or copyrights 212 Feedback and Support Licensee agrees to provide any comments and suggestions regarding the performance of the SDK (a) if applicable on the developer forum of the DevConnect Program on wwwavayacomdevconnect or (b) via the process otherwise indicated by Avaya with respect to the SDK Avaya agrees to monitor the applicable forum but is under no obligation to implement any of the suggestions andor proposals or be required to respond to any questions asked in the forum Self-support tools are available via the Avaya DevConnect programrsquos portal and requires self registration Licensee hereby assigns to Avaya all right title and interest in and to Feedback provided to Avaya 213 Fees and Taxes To the extent that fees are associated with the license of the SDK Licensee agrees to pay to Avaya or pay directly to the applicable government or taxing authority if requested by Avaya all taxes and charges including without limitation penalties and interest which may be imposed by any federal state or local governmental or taxing authority arising hereunder excluding however all taxes computed upon Avayarsquos net income If You move any Software including the SDK and as a result of such move a jurisdiction imposes a duty tax levy or fee (including withholding taxes fees customs or other duties for the import and export of any such Software) then You are solely liable for and agree to pay any such duty taxes levy or other fees 214 No Endorsement Neither the name Avaya its Affiliates nor the names of contributors may be used to endorse or promote products derived from the Avaya SDK without specific prior written permission from Avaya 215 High Risk Activities The Avaya SDK is not fault-tolerant and is not designed manufactured or intended for use or resale as on-line control equipment or in hazardous environments requiring failsafe performance such as in the operation of nuclear facilities aircraft navigation or aircraft communications systems mass transit air traffic control medical or direct life support machines dedicated emergency call handling systems or weapons systems in which the failure of the Avaya SDK could lead directly to death personal injury or severe physical or environmental damage (high risk activities) If Licensee uses the Avaya SDK for high risk activities Licensee does so at Licenseersquos own risk and Licensee assumes all responsibility and liability for such use to the maximum extent such limitation or exclusion is permitted by applicable law Licensee agrees that Avaya and its suppliers will not be liable for any claims or damages arising from or related to use of the Avaya SDK for high risk activities to the maximum extent such limitation or exclusion is permitted by law 216 No Virus Licensee warrants that (i) the applications interfaces value-added services andor solutions workflows or processes Licensee develops using this SDK will not contain any computer program file that includes time code limitations disabling devices or any other mechanism which will prevent the Supplier Software from being functional at all times (collectively ldquoTime Bombsrdquo) and (ii) the applications interfaces value-added services andor solutions workflows or processes Licensee develops using this SDK will be free of computer viruses black boxes malware trapdoors and other mechanisms to allow remotehidden attacks or access through unauthorized computerized command and control and will not contain any other computer software routines designed to spy monitor traffic (network sniffers keyloggers) damage or erase such applications interfaces value-added services andor solutions workflows or processes developed using this SDK or data or any computer files or systems of Avaya its Affiliates andor end users (collectively ldquoVirusrdquo) In addition to any other remedies permitted in the Agreement if Licensee breaches its warranties under this Section Licensee will at its expense take remedial action to eliminate any Time Bombs andor Viruses and prevent re-occurrence (including implementing appropriate processes to prevent further occurrences) as well

as provide prompt reasonable assistance to Avaya to materially reduce the effects of the Time Bomb andor Virus 217 Disclaimer Any software security feature is not a guaranty against malicious code deleterious routines and other techniques and tools employed by computer ldquohackersrdquo and other third parties to create security exposures Compromised passwords represent a major security risk Avaya encourages You to create strong passwords using three different character types change Your password regularly and refrain from using the same password regularly You must treat such information as confidential You agree to notify Avaya immediately upon becoming aware of any unauthorized use or breach of Your user name password account or subscription You are responsible for ensuring that Your networks and systems are adequately secured against unauthorized intrusion or attack and regularly back up of Your data and files in accordance with good computing practices 3 OWNERSHIP 31 As between Avaya and Licensee Avaya or its licensors shall own and retain all proprietary rights including all patent copyright trade secret trademark and other Intellectual Property rights in and to the SDK and any corrections bug fixes enhancements updates improvements or modifications thereto and Licensee hereby irrevocably transfers conveys and assigns to Avaya all of its right title and interest therein Avaya shall have the exclusive right to apply for or register any patents mask work rights copyrights and such other proprietary protections with respect thereto Licensee acknowledges that the license granted under this Agreement does not provide Licensee with title or ownership to the SDK but only a right of limited use under the terms and conditions of this Agreement 32 Grant Back License to Avaya Licensee hereby grants to Avaya an irrevocable perpetual non-exclusive sub-licensable royalty-free worldwide license under any and all of Licensees Intellectual Property rights related to any Permitted Modifications to use employ practice make have made sell andor otherwise exploit any and all Permitted Modifications 40 SUPPORT Avaya will not provide any support for the SDK provided under this Agreement or for any Derivative Works including without limitation modifications to the Source Code or applications built by Licensee using the SDK Notwithstanding the above limitations Avaya shall have no obligation to provide support for the use of the SDK or Licensees derivative application services or solutions which may or may not include redistributable Client Libraries or Sample Application Code to any third party to whom Licensee delivers such derivative applications services or solutions Avaya further will not provide fixes patches or repairs for any defects that might exist in the SDK or the Sample Application Code provided under this Agreement In the event that Licensee desires support services for the SDK and provided that Avaya offers such support services (in its sole discretion) Licensee will be required to enter into a Avaya DevConnect Program Agreement or any support agreement with Avaya Nothing herein shall be construed to require Avaya to provide support services or updates upgrades bug fixes or modifications to the SDK 50 CONFIDENTIALITY 51 Protection of Confidential Information Licensee shall take all reasonable measures to maintain the confidentiality of the SDK Specification Documents and other Avaya technical information obtained by it (collectively the ldquoConfidential Informationrdquo) and will not disclose the Confidential Information to any third party Licensee agrees at all times to protect and preserve the SDK in strict confidence and perpetually and shall not use such Confidential Information other than as expressly authorized by Avaya under this Agreement nor shall Licensee disclose any such Confidential Information to third parties without Avayas written consent Licensee further agrees to immediately return to Avaya all Confidential Information (including copies thereof) in Licensees possession custody or control upon termination of this Agreement at any time and for any reason The obligations of confidentiality shall not apply to information which (a) has entered the public domain except where such entry is the result of Licensees breach of this Agreement (b) prior to disclosure hereunder was already rightfully in Licensees possession (c) subsequent to disclosure hereunder is obtained by Licensee on a non-confidential basis from a third party who has the right to disclose such information

to the Licensee (d) is required to be disclosed pursuant to a court order so long as Avaya is given adequate notice and the ability to challenge such required disclosure 52 Press Releases Any press release or publication regarding this Agreement is subject to prior review and written approval of Avaya 60 NO WARRANTY The SDK and Documentation are provided ldquoAS-ISrdquo without any warranty whatsoever AVAYA SPECIFICALLY AND EXPRESSLY DISCLAIMS ANY WARRANTIES OR CONDITIONS STATUTORY OR OTHERWISE INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE NONINFRINGEMENT AND SATISFACTORY QUALITY AVAYA DOES NOT WARRANT THAT THE SDK AND DOCUMENTATION ARE SUITABLE FOR LICENSEES USE THAT THE SDK OR DOCUMENTATION ARE WITHOUT DEFECT OR ERROR THAT OPERATION WILL BE UNINTERRUPTED OR THAT DEFECTS WILL BE CORRECTED FURTHER AVAYA MAKES NO WARRANTY REGARDING THE RESULTS OF THE USE OF THE SDK AND DOCUMENTATION NEITHER AVAYA NOR ITS SUPPLIERS MAKE ANY WARRANTY EXPRESS OR IMPLIED THAT SECURITY THREATS AND VULNERABILITIES WILL BE DETECTED OR SOFTWARE WILL RENDER AN END USERrsquoS OR LICENSEErsquoS NETWORK OR PARTICULAR NETWORK ELEMENTS SAFE FROM INTRUSIONS AND OTHER SECURITY BREACHES 70 CONSEQUENTIAL DAMAGES WAIVER EXCEPT FOR PERSONAL INJURY CLAIMS AND WILLFUL MISCONDUCT AVAYA SHALL NOT BE LIABLE FOR ANY INCIDENTAL INDIRECT SPECIAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH ARISING OUT OF OR RELATING TO THIS AGREEMENT OR USE OF THE SDK OR FOR THE LOSS OR CORRUPTION OF DATA INFORMATION OF ANY KIND BUSINESS PROFITS OR OTHER COMMERCIAL LOSS HOWEVER CAUSED AND WHETHER OR NOT AVAYA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 80 LIMITATION OF LIABILITY EXCEPT FOR PERSONAL INJURY CLAIMS AND WILLFUL MISCONDUCT IN NO EVENT SHALL AVAYAS TOTAL LIABILITY TO LICENSEE IN CONNECTION WITH ARISING OUT OF OR RELATING TO THIS AGREEMENT EXCEED FIVE HUNDRED DOLLARS ($500) THE PARTIES AGREE THAT THE LIMITATIONS SPECIFIED IN THIS SECTION WILL APPLY EVEN IF ANY LIMITED REMEDY PROVIDED IN THIS AGREEMENT IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE 90 INDEMNIFICATION Licensee shall indemnify and hold harmless Avaya its Affiliates and their respective officers directors agents suppliers customers and employees from and against all claims damages losses liabilities costs expenses and fees (including fees of attorneys and other professionals) arising from or relating to Licenseersquos use of the SDK with other software such as operating systems and codecs and the direct or indirect distribution or sale of software Derivative Works or other products (including but not limited to applications interfaces and application programming interfaces) developed utilizing the SDK including but not limited to products liability claims and claims of infringement of third party Intellectual Property rights 100 TERM AND TERMINATION 101 This Agreement will continue through December 31

st of the

current calendar year The Agreement will automatically renew for one (1) year terms and run concurrently with Licenseersquos membership in the Avaya DevConnect Program if applicable unless terminated as specified in Section 102 or 103 below and if applicable provided Licensee is a member of the Avaya DevConnect Program in a good-standing as determined by Avaya at its sole discretion 102 Either party shall have the right to terminate the Agreement upon thirty (30) days written notice to the other party 103 Notwithstanding language to the contrary Avaya may terminate this Agreement immediately upon written notice to Licensee for breach of Section 2 (License Grant) Section 5 (Confidentiality) or Section 12 (Compliance with Laws) Avaya may also terminate this license by giving written notice if a

Change In Control should occur or if Licensee becomes insolvent or voluntary or involuntary proceedings by or against Licensee are instituted in bankruptcy or under any insolvency law or a receiver or custodian is appointed for Licensee or proceedings are instituted by or against Licensee for corporate reorganization or the dissolution of Licensee which proceedings if involuntary have not been dismissed within thirty (30) days after the date of filing or Licensee makes an assignment for the benefit of its creditors or substantially all of the assets of Licensee are seized or attached and not released within sixty (60) days thereafter or if Licensee has ceased or threatened to cease to do business in the regular course 104 Upon termination of this Agreement Licensee will immediately cease using the SDK Development Kit and Licensee agrees to destroy all adaptations or copies of the SDK and Documentation or return them to Avaya upon termination of this License 105 The rights and obligations of the parties contained in Sections 23 26 27 210 211 3 and 5 through 18 shall survive any expiration or termination of this Agreement 110 ASSIGNMENT Avaya may assign all or any part of its rights and obligations hereunder Licensee may not assign this Agreement or any interest or rights granted hereunder to any third party without the prior written consent of Avaya The term assign includes but is not limited to any transaction in which there is a Change In Control or reorganization of Licensee pursuant to a merger sale of assets or stock This Agreement shall terminate immediately upon occurrence of any prohibited assignment 120 COMPLIANCE WITH LAWS Licensee shall comply with all applicable laws and regulations including without limitation those applicable to data privacy intellectual property trade secret fraud music performance rights and the export or re-export of technology and will not export or re-export the SDK or any other technical information provided under this Agreement in any form in violation of the export control laws of the United States of America and of any other applicable country For more information on such export laws and regulations Licensee may refer to the resources provided in the websites maintained by the US Commerce Department the US State Department and the US Office of Foreign Assets Control 130 WAIVER The failure to assert any rights under this Agreement including but not limited to the right to terminate in the event of breach or default will not be deemed to constitute a waiver of the right to enforce each and every provision of this Agreement in accordance with their terms 140 SEVERABILITY If any provision of this Agreement is determined to be unenforceable or invalid this Agreement will not be rendered unenforceable or invalid as a whole and the provision will be changed and interpreted so as to best accomplish the objectives of the original provision within the limits of applicable law 150 GOVERNING LAW AND DISPUTE RESOLUTION This Agreement and any dispute claim or controversy arising out of or relating to this Agreement (Dispute) including without limitation those relating to the formation interpretation breach or termination of this Agreement or any issue regarding whether a Dispute is subject to arbitration under this Agreement will be governed by New York State laws excluding conflict of law principles and the United Nations Convention on Contracts for the International Sale of Goods Any Dispute shall be resolved in accordance with the following provisions The disputing party shall give the other party written notice of the Dispute The parties will attempt in good faith to resolve each Dispute within thirty (30) days or such other longer period as the parties may mutually agree following the delivery of such notice by negotiations between designated representatives of the parties who have dispute resolution authority If a Dispute that arose anywhere other than in the United States or is based upon an alleged breach committed anywhere other than in the United States cannot be settled under these procedures and within these timeframes it will be conclusively determined upon request of either party by a final and binding arbitration proceeding to be held in accordance with the Rules of Arbitration of the International Chamber of Commerce by a single arbitrator appointed by the parties or (failing agreement) by an arbitrator appointed by the President

of the International Chamber of Commerce (from time to time) except that if the aggregate claims cross claims and counterclaims by any one party against any or all other parties exceed One Million US Dollars at the time all claims including cross claims and counterclaims are filed the proceeding will be held in accordance with the Rules of Arbitration of the International Chamber of Commerce by a panel of three arbitrator(s) appointed in accordance with the Rules of Arbitration of the International Chamber of Commerce The arbitration will be conducted in the English language at a location agreed by the parties or (failing agreement) ordered by the arbitrator(s) The arbitrator(s) will have authority only to award compensatory damages within the scope of the limitations of this Agreement and will not award punitive or exemplary damages The arbitrator(s) will not have the authority to limit expand or otherwise modify the terms of this Agreement The ruling by the arbitrator(s) will be final and binding on the parties and may be entered in any court having jurisdiction over the parties or any of their assets The parties will evenly split the cost of the arbitrator(s) fees but each party will bear its own attorneys fees and other costs associated with the arbitration The parties their representatives other participants and the arbitrator(s) will hold the existence content and results of the arbitration in strict confidence to the fullest extent permitted by law Any disclosure of the existence content and results of the arbitration shall be as limited and narrowed as required to comply with the applicable law By way of illustration if the applicable law mandates the disclosure of the monetary amount of an arbitration award only the underlying opinion or rationale for that award may not be disclosed If a Dispute by one party against the other that arose in the United States or is based upon an alleged breach committed in the United States cannot be settled under the procedures and within the timeframe set forth above then either party may bring an action or proceeding solely in either the Supreme Court of the State of New York New York County or the United States District Court for the Southern District of New York Except as otherwise stated above with regard to arbitration of Disputes that arise anywhere other than in the United States or are based upon an alleged breach committed anywhere other than in the United States each party to this Agreement consents to the exclusive jurisdiction of those courts including their appellate courts for the purpose of all actions and proceedings The parties agree that the arbitration provision in this section may be enforced by injunction or other equitable order and no bond or security of any kind will be required with respect to any such injunction or order Nothing in this section will be construed to preclude either party from seeking provisional remedies including but not limited to temporary restraining orders and preliminary injunctions from any court of competent jurisdiction in order to protect its rights including its rights pending arbitration at any time In addition and notwithstanding the foregoing Avaya shall be entitled to take any necessary legal action at any time including without limitation seeking immediate injunctive relief from a court of competent jurisdiction in order to protect Avayas intellectual property and its confidential or proprietary information (including but not limited to trade secrets) 160 IMPORTEXPORT CONTROL Licensee is advised that the SDK is of US origin and subject to the US Export Administration Regulations (ldquoEARrdquo) The SDK also may be subject to applicable local country importexport laws and regulations Diversion contrary to US andor applicable local country law andor regulation is prohibited Licensee agrees not to directly or indirectly export re-export import download or transmit the SDK to any country end user or for any use that is contrary to applicable US andor local country regulation or statute (including but not limited to those countries embargoed by the US government) Licensee represents that any governmental agency has not issued sanctions against Licensee or otherwise suspended revoked or denied Licensees importexport privileges Licensee agrees not to use or transfer the SDK for any use relating to nuclear chemical or biological weapons or missile technology unless authorized by the US andor any applicable local government by regulation or specific written license Additionally Licensee is advised that the SDK may contain encryption algorithm or source code that may not be exported to government or military

end users without a license issued by the US Bureau of Industry and Security and any other countryrsquos governmental agencies where applicable 170 AGREEMENT IN ENGLISH The parties confirm that it is their wish that the Agreement as well as all other documents relating hereto including all notices have been and shall be drawn up in the English language only Les parties aux preacutesentes confirment leur volonteacute que cette convention de mecircme que tous les documents y compris tout avis qui sy rattachent soient reacutedigeacutes en langue anglaise 180 ENTIRE AGREEMENT This Agreement its exhibits and other agreements or documents referenced herein constitute the full and complete understanding and agreement between the parties and supersede all contemporaneous and prior understandings agreements (excluding the Avaya DevConnect Program Agreement) and representations relating to the subject matter hereof No modifications alterations or amendments shall be effective unless in writing signed by both parties to this Agreement 19 REDISTRIBUTABLE CLIENT FILES The list of SDK client files that can be redistributed if any are in the SDK in a file called Redistributabletxt

Table of Contents

Table of Figures 8 1 About this document 9

11 Scope of the document 9 12 Intended audience 10 13 Conventions used in the document 10 14 Related documents 10 15 Providing documentation feedback 10 16 Historical View 10

2 Architecture Overview 11 3 POM and Recorder Application Integration Design 14

31 Getting started 14 311 InstallUpgrade POM 14 312 Configure Communication Manager and Application Enablement Services 14 313 Configure POM 15

32 Connecting POM and Recorder Application 17 321 POM deployment with recorder 17 322 TCP based connection 18 323 TLS based secured connection 19 324 Verify connection between POM and Recorder 21 325 Link failure and recovery 22

33 Recording per Zone 22 34 Failure and Recovery 25

341 POM Server Failure 25 342 Recorder application failure 26

35 High Availability 27 351 POM server failover 27 352 Zone failover 29

36 Licensing 30 4 POM Recording Events 31

41 Recorder login and listing agents 31 411 LoginRequest Event 32 412 LoginResponse Event 33 413 ListAgentsRequest Event 33 414 ListAgentsResponse Event 34 415 Logout 34

42 Agent states and associated recording events 35 421 AgentAcquire Event 35 422 AgentRelease Event 35 423 MediaInfo Event 36 424 MediaComplete Event 37

5 POM Call Scenarios 38 51 Scenario Agent working on call 38 52 Scenario Agent holds while working on call 40 53 Scenario Agent consulttransfer while working on call 43 54 Scenario Agent consultconference while working on call 47

6 Sample Client 52 7 Limitations 52 Appendix A ndash Glossary 53 Appendix B ndash Content out of scope 54 Appendix C ndash Troubleshooting 54

Table of Figures Figure 1 Solution architecture view of POM with CC-Elite 11 Figure 2 Solution architecture view of POM with AACC 12 Figure 3 POM nailing request ndash call flow 13 Figure 4 POM dialing customer ndash call flow 13 Figure 5 POM agent talking to customer ndash call flow 14 Figure 6 Global configuration 15 Figure 7 Enable recorder 15 Figure 8 Edit NailerDriver application 16 Figure 9 Generate UCID settings 16 Figure 10 Single POM and recorder application deployment view 17 Figure 11 Multiple POM and recorder application deployment view 18 Figure 12 Connection sequence between POM and recorder application 19 Figure 13 Enable secured connection with recorder 20 Figure 14 POM certificate export option 20 Figure 15 Successful TCP connection established between POM and Recorder 21 Figure 16 Successful TLS connection established between POM and Recorder 21 Figure 17 Multiple POM zonal deployment with recorder 23 Figure 18 All zone configuration 24 Figure 19 Comma separated zone configuration 24 Figure 20 Recording events for configured zones 24 Figure 21 POM server failure 25 Figure 22 Recorder application failure 26 Figure 23 Primary and Aux POM servers connected with recorder 27 Figure 24 Failover of POM server managing zone 28 Figure 25 Zone failover 30 Figure 26 Sequence to receive events with registered agent details 31 Figure 27 Sequence to receive events and request for registered agent details 32 Figure 28 LoginRequest XML message 33 Figure 29 LoginResponse XML message 33 Figure 30 ListAgentsRequest XML message 34 Figure 31 ListAgentsResponse XML message 34 Figure 32 AgentAcquireEvent XML message 35 Figure 33 AgentReleaseEvent XML message 36 Figure 34 MediaInfoEvent XML message 37 Figure 35 MediaCompleteEvent XML message 38 Figure 36 Scenario Agent working on call 39 Figure 37 Scenario Agent puts customer on hold 41 Figure 38 Scenario Agent consults with other agent 44 Figure 39 Scenario Agent conferencing other agent 48

1 About this document This chapter describes

Scope of the document

Intended audience

Conventions used in the document

Related documents

Providing documentation feedback

Historical view

11 Scope of the document This document gives details of design and APIs provided by Proactive Outreach Manager (POM) for integration with any third party voice call recorder Proactive Outreach Manager is an outbound dialer and provides agent based as well as agent less dialing as one of its key feature Please note prior to POM 304 only Avaya Recorder was supported for call recording in POM 301 In POM 304 and above support is added for third-party call recording solutions Note Recording feature available in POM 30 allows the recording application to connect with POM over a TCP connection whereas the POM 304 enhances this by providing TLS based connection apart from the support for TCP to be backward compatible This document covers solution architecture and key concepts of POM integration design of POM and recorder the recording events various call scenarios and troubleshooting techniques as part of below chapters

Chapter 2 Architecture Overview - introduces the solution deployment architecture for general awareness of POM concepts and prerequisites for agent based dialing operations

Chapter 3 POM and Recorder Application Integration Design ndash details the design of the POM components interacting with the recording application elaborating the logical sequence of basic call flow and recording activities It also covers the multi-server deployment failover scenarios and zoning with respect to integration of POM with any recording application

Chapter 4 POM Recording Events - details all possible recording events in the form of APIs provided by POM

Chapter 5 POM Call Scenarios - covers various agent based call scenarios and the unlined sequence of messages

Chapter 6 Sample Client ndash explains the sample client code for the recording application developersintegrators

Chapter 7 Limitations and Caveats ndash describes potential enhancements in POM recorder integration design

Note This document does not cover administration and configuration details of aura products Avaya Auratrade Communication Manager Avaya Auratrade Enablement Services Avaya Contact Recorder These documents are called out in the related documents chapter

12 Intended audience This document is developed for deployment engineers and recording application developers in order to enable them in integrating recorder application with Proactive Outreach Manager The audience of this document is expected to know

Java

XML

Proactive Outreach Manager Solution overview

Avaya Aura components like Application Enablement Service Communication Manager Session Manager and System Manager

13 Conventions used in the document The following fonts are used in this document

To represent This font is used

Document Name Document Name(ex Using POM)

Linux commands Command (ex sbinservice POM restart)

Java Code javanetSocket

Note Note

Event NamesXml Event name (ex LoginRequest)

14 Related documents Document Description

CM Admin Guide Administering Avaya Aurareg Communication Manager

SM Admin Guide Administering Avaya Aurareg Session Manager

EPMPP Admin Guide Administering Avaya Aurareg Experience Portal

AES Admin Guide Administering and Maintaining Avaya Aurareg Application Enablement Services

Guide on DMCC Avaya Aurareg Application Enablement Services

ACR Admin Guide Avaya Contact Recorder Release 151 Planning Installation and Administration Guide

POM design and product documents Using Proactive Outreach Manager

15 Providing documentation feedback Let us know what you like or do not like about this document Although we cannot respond personally to all your feedback we promise we read each response we receive Please email feedback to documentavayacom

16 Historical View POM Release Support Purpose

301 TCP based integration with Minimum version of

Avaya Contact Recorder (ACR)

POM required for POM-Recorder integration is 301

Integration supported with ACR only

Integration between POM and ACR is based on TCP protocol

304 and above TLS based integration with third party recorder

Enhanced to support TLS based integration with third party recorder

Supports backward compatibility for TCP based integration with ACR

2 Architecture Overview This section describes the solution architecture of POM highlighting the adjunct products required for POM It also covers the basic concepts of POM used in the context of call recording functionality There are two deployment scenarios one with Avaya Contact Center Elite (CCElite) and another with Avaya Aura Contact Center (AACC) Following diagram gives the architectural view of POM with CCElite and ACR as the call recorder highlighting the adjuncts required for POM to function

Figure 1 Solution architecture view of POM with CC-Elite

Below diagram gives the architectural view of POM with AACC and ACR as the recorder highlighting the adjuncts required for POM to function

Figure 2 Solution architecture view of POM with AACC

As depicted in the above 2 diagrams POM is deployed as a managed application on Experience Portal as the platform As for the adjuncts POM needs Media Processing Platform (MPP) Session Manager (SM) Communication Manager (CM) Application Enablement Service (AES) products to provide an outbound dialer solution along with recording As shown above POM leverages the platform features and web services to perform the outbound operations For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP which in turn sends SIP invite to SM all the way to CM Also POM fetches the agent login and skill details using the AES SMS web service POM interacts with CMS via socket and uses rt_socket package to receive the skill feeds of the agents whose skills are configured and monitored in POM for blending operation POM interacts with ACR (sample recording application in the above diagram) over socket connection to send any recording events and ACR uses Device Media Call Control (DMCC) service of AES to trigger the call recording ACR receives the media stream from the media gateway (be it the Avaya Media server (AMS) or a G series gateway) registered with the CM For details please refer to material listed in Reference Material section for administration and provisioning documentation for these products For ease of understanding an agent based outbound call flow - explaining basic POM concepts in context of recording is explained below In order to work on any agent based outbound call POM first registers the agent also referred to as lsquonail the agentrsquo The agent nailing flow is depicted below

Figure 3 POM nailing request ndash call flow

The POM Nailer application is a CCXML application shipped as one of the POM suite of applications using for running outbound call campaigns Nailer is responsible for placing the call to an agent prior to running an agent based campaign Nailing refers to keeping an agent connection alive during multiple outbound calls during the outbound calling campaign The call is initiated using a SIP INVITE sent by MPP to CM which results in RTP established between the MPP and the CM (or more specifically the gateway registered with CM) Once the agent is nailed to call from POM POM utilizes this agent for working on customer calls There are 3 types of agent based calls in POM namely preview predictive and progressive In preview the agent is first connected by POM and then the customer information is provided to the agent by POM and agent chooses to dial the customer Whereas in progressive and predictive the customer is first connecteddialed by POM and once connected POM identifies the best suitable agent to talk to the customer using skills based routing Call flows explaining the customer call connect and patching the agent with the customer is depicted below

Figure 4 POM dialing customer ndash call flow

POM requests the platform to send INVITE to the customer and create the customerrsquos call leg Now the customer and the agent leg are connected as a conference on the MPP hosting the agent POM uses INVITE with REPLACE to achieve this

Figure 5 POM agent talking to customer ndash call flow

Every call between the customer and a nailed agent is a conference on the MPP POMrsquos nailer app requests EP to initiate an INVITE wt REPLACE as soon as it finds best agent to work on the customer call Thus conceptually recording a call is adding the recorder application as one of the participants to the conference created between a customer and a nailed agent however the physical implementation of this is not via a conference on the MPP but rather using the DMCC protocol available on CM Thus a conference is formed on communication manager between the customer the call from the MPP which is connected to the agent via CM and the call recorder via a DMCC station that was registered by AE Services to Communication Manager Once an agent is done with working on a call heshe can wrap-up the call and enter the dispositioncompletion details of the call Note that the inter-working of DMCC is out of scope of this document please refer Related Documents section This section covered in nutshell the basic concepts of POM nailing agentcustomer connections and previewprogressivepredictive dialing and wrap-up in context of agent based outbound operations

3 POM and Recorder Application Integration Design

31 Getting started This section covers the pre-requisites for any recorder application to integrate and receive call related events from POM for the purpose of call recording

311 InstallUpgrade POM First things first installupgrade to latest POM version Please refer Implementing POM and Using POM product documents available on supportavayacom

312 Configure Communication Manager and Application Enablement Services

Configure Communication Manager and Application Enablement Services as explained in reference document Application Notes to Integrate Avaya Contact Recorder 120 with Avaya Proactive Outreach Manager 30 using Avaya Aurareg Application Enablement Services 63 ndash Issue 11 available on Dev connect

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

to the Licensee (d) is required to be disclosed pursuant to a court order so long as Avaya is given adequate notice and the ability to challenge such required disclosure 52 Press Releases Any press release or publication regarding this Agreement is subject to prior review and written approval of Avaya 60 NO WARRANTY The SDK and Documentation are provided ldquoAS-ISrdquo without any warranty whatsoever AVAYA SPECIFICALLY AND EXPRESSLY DISCLAIMS ANY WARRANTIES OR CONDITIONS STATUTORY OR OTHERWISE INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE NONINFRINGEMENT AND SATISFACTORY QUALITY AVAYA DOES NOT WARRANT THAT THE SDK AND DOCUMENTATION ARE SUITABLE FOR LICENSEES USE THAT THE SDK OR DOCUMENTATION ARE WITHOUT DEFECT OR ERROR THAT OPERATION WILL BE UNINTERRUPTED OR THAT DEFECTS WILL BE CORRECTED FURTHER AVAYA MAKES NO WARRANTY REGARDING THE RESULTS OF THE USE OF THE SDK AND DOCUMENTATION NEITHER AVAYA NOR ITS SUPPLIERS MAKE ANY WARRANTY EXPRESS OR IMPLIED THAT SECURITY THREATS AND VULNERABILITIES WILL BE DETECTED OR SOFTWARE WILL RENDER AN END USERrsquoS OR LICENSEErsquoS NETWORK OR PARTICULAR NETWORK ELEMENTS SAFE FROM INTRUSIONS AND OTHER SECURITY BREACHES 70 CONSEQUENTIAL DAMAGES WAIVER EXCEPT FOR PERSONAL INJURY CLAIMS AND WILLFUL MISCONDUCT AVAYA SHALL NOT BE LIABLE FOR ANY INCIDENTAL INDIRECT SPECIAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH ARISING OUT OF OR RELATING TO THIS AGREEMENT OR USE OF THE SDK OR FOR THE LOSS OR CORRUPTION OF DATA INFORMATION OF ANY KIND BUSINESS PROFITS OR OTHER COMMERCIAL LOSS HOWEVER CAUSED AND WHETHER OR NOT AVAYA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 80 LIMITATION OF LIABILITY EXCEPT FOR PERSONAL INJURY CLAIMS AND WILLFUL MISCONDUCT IN NO EVENT SHALL AVAYAS TOTAL LIABILITY TO LICENSEE IN CONNECTION WITH ARISING OUT OF OR RELATING TO THIS AGREEMENT EXCEED FIVE HUNDRED DOLLARS ($500) THE PARTIES AGREE THAT THE LIMITATIONS SPECIFIED IN THIS SECTION WILL APPLY EVEN IF ANY LIMITED REMEDY PROVIDED IN THIS AGREEMENT IS FOUND TO HAVE FAILED OF ITS ESSENTIAL PURPOSE 90 INDEMNIFICATION Licensee shall indemnify and hold harmless Avaya its Affiliates and their respective officers directors agents suppliers customers and employees from and against all claims damages losses liabilities costs expenses and fees (including fees of attorneys and other professionals) arising from or relating to Licenseersquos use of the SDK with other software such as operating systems and codecs and the direct or indirect distribution or sale of software Derivative Works or other products (including but not limited to applications interfaces and application programming interfaces) developed utilizing the SDK including but not limited to products liability claims and claims of infringement of third party Intellectual Property rights 100 TERM AND TERMINATION 101 This Agreement will continue through December 31

st of the

current calendar year The Agreement will automatically renew for one (1) year terms and run concurrently with Licenseersquos membership in the Avaya DevConnect Program if applicable unless terminated as specified in Section 102 or 103 below and if applicable provided Licensee is a member of the Avaya DevConnect Program in a good-standing as determined by Avaya at its sole discretion 102 Either party shall have the right to terminate the Agreement upon thirty (30) days written notice to the other party 103 Notwithstanding language to the contrary Avaya may terminate this Agreement immediately upon written notice to Licensee for breach of Section 2 (License Grant) Section 5 (Confidentiality) or Section 12 (Compliance with Laws) Avaya may also terminate this license by giving written notice if a

Change In Control should occur or if Licensee becomes insolvent or voluntary or involuntary proceedings by or against Licensee are instituted in bankruptcy or under any insolvency law or a receiver or custodian is appointed for Licensee or proceedings are instituted by or against Licensee for corporate reorganization or the dissolution of Licensee which proceedings if involuntary have not been dismissed within thirty (30) days after the date of filing or Licensee makes an assignment for the benefit of its creditors or substantially all of the assets of Licensee are seized or attached and not released within sixty (60) days thereafter or if Licensee has ceased or threatened to cease to do business in the regular course 104 Upon termination of this Agreement Licensee will immediately cease using the SDK Development Kit and Licensee agrees to destroy all adaptations or copies of the SDK and Documentation or return them to Avaya upon termination of this License 105 The rights and obligations of the parties contained in Sections 23 26 27 210 211 3 and 5 through 18 shall survive any expiration or termination of this Agreement 110 ASSIGNMENT Avaya may assign all or any part of its rights and obligations hereunder Licensee may not assign this Agreement or any interest or rights granted hereunder to any third party without the prior written consent of Avaya The term assign includes but is not limited to any transaction in which there is a Change In Control or reorganization of Licensee pursuant to a merger sale of assets or stock This Agreement shall terminate immediately upon occurrence of any prohibited assignment 120 COMPLIANCE WITH LAWS Licensee shall comply with all applicable laws and regulations including without limitation those applicable to data privacy intellectual property trade secret fraud music performance rights and the export or re-export of technology and will not export or re-export the SDK or any other technical information provided under this Agreement in any form in violation of the export control laws of the United States of America and of any other applicable country For more information on such export laws and regulations Licensee may refer to the resources provided in the websites maintained by the US Commerce Department the US State Department and the US Office of Foreign Assets Control 130 WAIVER The failure to assert any rights under this Agreement including but not limited to the right to terminate in the event of breach or default will not be deemed to constitute a waiver of the right to enforce each and every provision of this Agreement in accordance with their terms 140 SEVERABILITY If any provision of this Agreement is determined to be unenforceable or invalid this Agreement will not be rendered unenforceable or invalid as a whole and the provision will be changed and interpreted so as to best accomplish the objectives of the original provision within the limits of applicable law 150 GOVERNING LAW AND DISPUTE RESOLUTION This Agreement and any dispute claim or controversy arising out of or relating to this Agreement (Dispute) including without limitation those relating to the formation interpretation breach or termination of this Agreement or any issue regarding whether a Dispute is subject to arbitration under this Agreement will be governed by New York State laws excluding conflict of law principles and the United Nations Convention on Contracts for the International Sale of Goods Any Dispute shall be resolved in accordance with the following provisions The disputing party shall give the other party written notice of the Dispute The parties will attempt in good faith to resolve each Dispute within thirty (30) days or such other longer period as the parties may mutually agree following the delivery of such notice by negotiations between designated representatives of the parties who have dispute resolution authority If a Dispute that arose anywhere other than in the United States or is based upon an alleged breach committed anywhere other than in the United States cannot be settled under these procedures and within these timeframes it will be conclusively determined upon request of either party by a final and binding arbitration proceeding to be held in accordance with the Rules of Arbitration of the International Chamber of Commerce by a single arbitrator appointed by the parties or (failing agreement) by an arbitrator appointed by the President

of the International Chamber of Commerce (from time to time) except that if the aggregate claims cross claims and counterclaims by any one party against any or all other parties exceed One Million US Dollars at the time all claims including cross claims and counterclaims are filed the proceeding will be held in accordance with the Rules of Arbitration of the International Chamber of Commerce by a panel of three arbitrator(s) appointed in accordance with the Rules of Arbitration of the International Chamber of Commerce The arbitration will be conducted in the English language at a location agreed by the parties or (failing agreement) ordered by the arbitrator(s) The arbitrator(s) will have authority only to award compensatory damages within the scope of the limitations of this Agreement and will not award punitive or exemplary damages The arbitrator(s) will not have the authority to limit expand or otherwise modify the terms of this Agreement The ruling by the arbitrator(s) will be final and binding on the parties and may be entered in any court having jurisdiction over the parties or any of their assets The parties will evenly split the cost of the arbitrator(s) fees but each party will bear its own attorneys fees and other costs associated with the arbitration The parties their representatives other participants and the arbitrator(s) will hold the existence content and results of the arbitration in strict confidence to the fullest extent permitted by law Any disclosure of the existence content and results of the arbitration shall be as limited and narrowed as required to comply with the applicable law By way of illustration if the applicable law mandates the disclosure of the monetary amount of an arbitration award only the underlying opinion or rationale for that award may not be disclosed If a Dispute by one party against the other that arose in the United States or is based upon an alleged breach committed in the United States cannot be settled under the procedures and within the timeframe set forth above then either party may bring an action or proceeding solely in either the Supreme Court of the State of New York New York County or the United States District Court for the Southern District of New York Except as otherwise stated above with regard to arbitration of Disputes that arise anywhere other than in the United States or are based upon an alleged breach committed anywhere other than in the United States each party to this Agreement consents to the exclusive jurisdiction of those courts including their appellate courts for the purpose of all actions and proceedings The parties agree that the arbitration provision in this section may be enforced by injunction or other equitable order and no bond or security of any kind will be required with respect to any such injunction or order Nothing in this section will be construed to preclude either party from seeking provisional remedies including but not limited to temporary restraining orders and preliminary injunctions from any court of competent jurisdiction in order to protect its rights including its rights pending arbitration at any time In addition and notwithstanding the foregoing Avaya shall be entitled to take any necessary legal action at any time including without limitation seeking immediate injunctive relief from a court of competent jurisdiction in order to protect Avayas intellectual property and its confidential or proprietary information (including but not limited to trade secrets) 160 IMPORTEXPORT CONTROL Licensee is advised that the SDK is of US origin and subject to the US Export Administration Regulations (ldquoEARrdquo) The SDK also may be subject to applicable local country importexport laws and regulations Diversion contrary to US andor applicable local country law andor regulation is prohibited Licensee agrees not to directly or indirectly export re-export import download or transmit the SDK to any country end user or for any use that is contrary to applicable US andor local country regulation or statute (including but not limited to those countries embargoed by the US government) Licensee represents that any governmental agency has not issued sanctions against Licensee or otherwise suspended revoked or denied Licensees importexport privileges Licensee agrees not to use or transfer the SDK for any use relating to nuclear chemical or biological weapons or missile technology unless authorized by the US andor any applicable local government by regulation or specific written license Additionally Licensee is advised that the SDK may contain encryption algorithm or source code that may not be exported to government or military

end users without a license issued by the US Bureau of Industry and Security and any other countryrsquos governmental agencies where applicable 170 AGREEMENT IN ENGLISH The parties confirm that it is their wish that the Agreement as well as all other documents relating hereto including all notices have been and shall be drawn up in the English language only Les parties aux preacutesentes confirment leur volonteacute que cette convention de mecircme que tous les documents y compris tout avis qui sy rattachent soient reacutedigeacutes en langue anglaise 180 ENTIRE AGREEMENT This Agreement its exhibits and other agreements or documents referenced herein constitute the full and complete understanding and agreement between the parties and supersede all contemporaneous and prior understandings agreements (excluding the Avaya DevConnect Program Agreement) and representations relating to the subject matter hereof No modifications alterations or amendments shall be effective unless in writing signed by both parties to this Agreement 19 REDISTRIBUTABLE CLIENT FILES The list of SDK client files that can be redistributed if any are in the SDK in a file called Redistributabletxt

Table of Contents

Table of Figures 8 1 About this document 9

11 Scope of the document 9 12 Intended audience 10 13 Conventions used in the document 10 14 Related documents 10 15 Providing documentation feedback 10 16 Historical View 10

2 Architecture Overview 11 3 POM and Recorder Application Integration Design 14

31 Getting started 14 311 InstallUpgrade POM 14 312 Configure Communication Manager and Application Enablement Services 14 313 Configure POM 15

32 Connecting POM and Recorder Application 17 321 POM deployment with recorder 17 322 TCP based connection 18 323 TLS based secured connection 19 324 Verify connection between POM and Recorder 21 325 Link failure and recovery 22

33 Recording per Zone 22 34 Failure and Recovery 25

341 POM Server Failure 25 342 Recorder application failure 26

35 High Availability 27 351 POM server failover 27 352 Zone failover 29

36 Licensing 30 4 POM Recording Events 31

41 Recorder login and listing agents 31 411 LoginRequest Event 32 412 LoginResponse Event 33 413 ListAgentsRequest Event 33 414 ListAgentsResponse Event 34 415 Logout 34

42 Agent states and associated recording events 35 421 AgentAcquire Event 35 422 AgentRelease Event 35 423 MediaInfo Event 36 424 MediaComplete Event 37

5 POM Call Scenarios 38 51 Scenario Agent working on call 38 52 Scenario Agent holds while working on call 40 53 Scenario Agent consulttransfer while working on call 43 54 Scenario Agent consultconference while working on call 47

6 Sample Client 52 7 Limitations 52 Appendix A ndash Glossary 53 Appendix B ndash Content out of scope 54 Appendix C ndash Troubleshooting 54

Table of Figures Figure 1 Solution architecture view of POM with CC-Elite 11 Figure 2 Solution architecture view of POM with AACC 12 Figure 3 POM nailing request ndash call flow 13 Figure 4 POM dialing customer ndash call flow 13 Figure 5 POM agent talking to customer ndash call flow 14 Figure 6 Global configuration 15 Figure 7 Enable recorder 15 Figure 8 Edit NailerDriver application 16 Figure 9 Generate UCID settings 16 Figure 10 Single POM and recorder application deployment view 17 Figure 11 Multiple POM and recorder application deployment view 18 Figure 12 Connection sequence between POM and recorder application 19 Figure 13 Enable secured connection with recorder 20 Figure 14 POM certificate export option 20 Figure 15 Successful TCP connection established between POM and Recorder 21 Figure 16 Successful TLS connection established between POM and Recorder 21 Figure 17 Multiple POM zonal deployment with recorder 23 Figure 18 All zone configuration 24 Figure 19 Comma separated zone configuration 24 Figure 20 Recording events for configured zones 24 Figure 21 POM server failure 25 Figure 22 Recorder application failure 26 Figure 23 Primary and Aux POM servers connected with recorder 27 Figure 24 Failover of POM server managing zone 28 Figure 25 Zone failover 30 Figure 26 Sequence to receive events with registered agent details 31 Figure 27 Sequence to receive events and request for registered agent details 32 Figure 28 LoginRequest XML message 33 Figure 29 LoginResponse XML message 33 Figure 30 ListAgentsRequest XML message 34 Figure 31 ListAgentsResponse XML message 34 Figure 32 AgentAcquireEvent XML message 35 Figure 33 AgentReleaseEvent XML message 36 Figure 34 MediaInfoEvent XML message 37 Figure 35 MediaCompleteEvent XML message 38 Figure 36 Scenario Agent working on call 39 Figure 37 Scenario Agent puts customer on hold 41 Figure 38 Scenario Agent consults with other agent 44 Figure 39 Scenario Agent conferencing other agent 48

1 About this document This chapter describes

Scope of the document

Intended audience

Conventions used in the document

Related documents

Providing documentation feedback

Historical view

11 Scope of the document This document gives details of design and APIs provided by Proactive Outreach Manager (POM) for integration with any third party voice call recorder Proactive Outreach Manager is an outbound dialer and provides agent based as well as agent less dialing as one of its key feature Please note prior to POM 304 only Avaya Recorder was supported for call recording in POM 301 In POM 304 and above support is added for third-party call recording solutions Note Recording feature available in POM 30 allows the recording application to connect with POM over a TCP connection whereas the POM 304 enhances this by providing TLS based connection apart from the support for TCP to be backward compatible This document covers solution architecture and key concepts of POM integration design of POM and recorder the recording events various call scenarios and troubleshooting techniques as part of below chapters

Chapter 2 Architecture Overview - introduces the solution deployment architecture for general awareness of POM concepts and prerequisites for agent based dialing operations

Chapter 3 POM and Recorder Application Integration Design ndash details the design of the POM components interacting with the recording application elaborating the logical sequence of basic call flow and recording activities It also covers the multi-server deployment failover scenarios and zoning with respect to integration of POM with any recording application

Chapter 4 POM Recording Events - details all possible recording events in the form of APIs provided by POM

Chapter 5 POM Call Scenarios - covers various agent based call scenarios and the unlined sequence of messages

Chapter 6 Sample Client ndash explains the sample client code for the recording application developersintegrators

Chapter 7 Limitations and Caveats ndash describes potential enhancements in POM recorder integration design

Note This document does not cover administration and configuration details of aura products Avaya Auratrade Communication Manager Avaya Auratrade Enablement Services Avaya Contact Recorder These documents are called out in the related documents chapter

12 Intended audience This document is developed for deployment engineers and recording application developers in order to enable them in integrating recorder application with Proactive Outreach Manager The audience of this document is expected to know

Java

XML

Proactive Outreach Manager Solution overview

Avaya Aura components like Application Enablement Service Communication Manager Session Manager and System Manager

13 Conventions used in the document The following fonts are used in this document

To represent This font is used

Document Name Document Name(ex Using POM)

Linux commands Command (ex sbinservice POM restart)

Java Code javanetSocket

Note Note

Event NamesXml Event name (ex LoginRequest)

14 Related documents Document Description

CM Admin Guide Administering Avaya Aurareg Communication Manager

SM Admin Guide Administering Avaya Aurareg Session Manager

EPMPP Admin Guide Administering Avaya Aurareg Experience Portal

AES Admin Guide Administering and Maintaining Avaya Aurareg Application Enablement Services

Guide on DMCC Avaya Aurareg Application Enablement Services

ACR Admin Guide Avaya Contact Recorder Release 151 Planning Installation and Administration Guide

POM design and product documents Using Proactive Outreach Manager

15 Providing documentation feedback Let us know what you like or do not like about this document Although we cannot respond personally to all your feedback we promise we read each response we receive Please email feedback to documentavayacom

16 Historical View POM Release Support Purpose

301 TCP based integration with Minimum version of

Avaya Contact Recorder (ACR)

POM required for POM-Recorder integration is 301

Integration supported with ACR only

Integration between POM and ACR is based on TCP protocol

304 and above TLS based integration with third party recorder

Enhanced to support TLS based integration with third party recorder

Supports backward compatibility for TCP based integration with ACR

2 Architecture Overview This section describes the solution architecture of POM highlighting the adjunct products required for POM It also covers the basic concepts of POM used in the context of call recording functionality There are two deployment scenarios one with Avaya Contact Center Elite (CCElite) and another with Avaya Aura Contact Center (AACC) Following diagram gives the architectural view of POM with CCElite and ACR as the call recorder highlighting the adjuncts required for POM to function

Figure 1 Solution architecture view of POM with CC-Elite

Below diagram gives the architectural view of POM with AACC and ACR as the recorder highlighting the adjuncts required for POM to function

Figure 2 Solution architecture view of POM with AACC

As depicted in the above 2 diagrams POM is deployed as a managed application on Experience Portal as the platform As for the adjuncts POM needs Media Processing Platform (MPP) Session Manager (SM) Communication Manager (CM) Application Enablement Service (AES) products to provide an outbound dialer solution along with recording As shown above POM leverages the platform features and web services to perform the outbound operations For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP which in turn sends SIP invite to SM all the way to CM Also POM fetches the agent login and skill details using the AES SMS web service POM interacts with CMS via socket and uses rt_socket package to receive the skill feeds of the agents whose skills are configured and monitored in POM for blending operation POM interacts with ACR (sample recording application in the above diagram) over socket connection to send any recording events and ACR uses Device Media Call Control (DMCC) service of AES to trigger the call recording ACR receives the media stream from the media gateway (be it the Avaya Media server (AMS) or a G series gateway) registered with the CM For details please refer to material listed in Reference Material section for administration and provisioning documentation for these products For ease of understanding an agent based outbound call flow - explaining basic POM concepts in context of recording is explained below In order to work on any agent based outbound call POM first registers the agent also referred to as lsquonail the agentrsquo The agent nailing flow is depicted below

Figure 3 POM nailing request ndash call flow

The POM Nailer application is a CCXML application shipped as one of the POM suite of applications using for running outbound call campaigns Nailer is responsible for placing the call to an agent prior to running an agent based campaign Nailing refers to keeping an agent connection alive during multiple outbound calls during the outbound calling campaign The call is initiated using a SIP INVITE sent by MPP to CM which results in RTP established between the MPP and the CM (or more specifically the gateway registered with CM) Once the agent is nailed to call from POM POM utilizes this agent for working on customer calls There are 3 types of agent based calls in POM namely preview predictive and progressive In preview the agent is first connected by POM and then the customer information is provided to the agent by POM and agent chooses to dial the customer Whereas in progressive and predictive the customer is first connecteddialed by POM and once connected POM identifies the best suitable agent to talk to the customer using skills based routing Call flows explaining the customer call connect and patching the agent with the customer is depicted below

Figure 4 POM dialing customer ndash call flow

POM requests the platform to send INVITE to the customer and create the customerrsquos call leg Now the customer and the agent leg are connected as a conference on the MPP hosting the agent POM uses INVITE with REPLACE to achieve this

Figure 5 POM agent talking to customer ndash call flow

Every call between the customer and a nailed agent is a conference on the MPP POMrsquos nailer app requests EP to initiate an INVITE wt REPLACE as soon as it finds best agent to work on the customer call Thus conceptually recording a call is adding the recorder application as one of the participants to the conference created between a customer and a nailed agent however the physical implementation of this is not via a conference on the MPP but rather using the DMCC protocol available on CM Thus a conference is formed on communication manager between the customer the call from the MPP which is connected to the agent via CM and the call recorder via a DMCC station that was registered by AE Services to Communication Manager Once an agent is done with working on a call heshe can wrap-up the call and enter the dispositioncompletion details of the call Note that the inter-working of DMCC is out of scope of this document please refer Related Documents section This section covered in nutshell the basic concepts of POM nailing agentcustomer connections and previewprogressivepredictive dialing and wrap-up in context of agent based outbound operations

3 POM and Recorder Application Integration Design

31 Getting started This section covers the pre-requisites for any recorder application to integrate and receive call related events from POM for the purpose of call recording

311 InstallUpgrade POM First things first installupgrade to latest POM version Please refer Implementing POM and Using POM product documents available on supportavayacom

312 Configure Communication Manager and Application Enablement Services

Configure Communication Manager and Application Enablement Services as explained in reference document Application Notes to Integrate Avaya Contact Recorder 120 with Avaya Proactive Outreach Manager 30 using Avaya Aurareg Application Enablement Services 63 ndash Issue 11 available on Dev connect

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

of the International Chamber of Commerce (from time to time) except that if the aggregate claims cross claims and counterclaims by any one party against any or all other parties exceed One Million US Dollars at the time all claims including cross claims and counterclaims are filed the proceeding will be held in accordance with the Rules of Arbitration of the International Chamber of Commerce by a panel of three arbitrator(s) appointed in accordance with the Rules of Arbitration of the International Chamber of Commerce The arbitration will be conducted in the English language at a location agreed by the parties or (failing agreement) ordered by the arbitrator(s) The arbitrator(s) will have authority only to award compensatory damages within the scope of the limitations of this Agreement and will not award punitive or exemplary damages The arbitrator(s) will not have the authority to limit expand or otherwise modify the terms of this Agreement The ruling by the arbitrator(s) will be final and binding on the parties and may be entered in any court having jurisdiction over the parties or any of their assets The parties will evenly split the cost of the arbitrator(s) fees but each party will bear its own attorneys fees and other costs associated with the arbitration The parties their representatives other participants and the arbitrator(s) will hold the existence content and results of the arbitration in strict confidence to the fullest extent permitted by law Any disclosure of the existence content and results of the arbitration shall be as limited and narrowed as required to comply with the applicable law By way of illustration if the applicable law mandates the disclosure of the monetary amount of an arbitration award only the underlying opinion or rationale for that award may not be disclosed If a Dispute by one party against the other that arose in the United States or is based upon an alleged breach committed in the United States cannot be settled under the procedures and within the timeframe set forth above then either party may bring an action or proceeding solely in either the Supreme Court of the State of New York New York County or the United States District Court for the Southern District of New York Except as otherwise stated above with regard to arbitration of Disputes that arise anywhere other than in the United States or are based upon an alleged breach committed anywhere other than in the United States each party to this Agreement consents to the exclusive jurisdiction of those courts including their appellate courts for the purpose of all actions and proceedings The parties agree that the arbitration provision in this section may be enforced by injunction or other equitable order and no bond or security of any kind will be required with respect to any such injunction or order Nothing in this section will be construed to preclude either party from seeking provisional remedies including but not limited to temporary restraining orders and preliminary injunctions from any court of competent jurisdiction in order to protect its rights including its rights pending arbitration at any time In addition and notwithstanding the foregoing Avaya shall be entitled to take any necessary legal action at any time including without limitation seeking immediate injunctive relief from a court of competent jurisdiction in order to protect Avayas intellectual property and its confidential or proprietary information (including but not limited to trade secrets) 160 IMPORTEXPORT CONTROL Licensee is advised that the SDK is of US origin and subject to the US Export Administration Regulations (ldquoEARrdquo) The SDK also may be subject to applicable local country importexport laws and regulations Diversion contrary to US andor applicable local country law andor regulation is prohibited Licensee agrees not to directly or indirectly export re-export import download or transmit the SDK to any country end user or for any use that is contrary to applicable US andor local country regulation or statute (including but not limited to those countries embargoed by the US government) Licensee represents that any governmental agency has not issued sanctions against Licensee or otherwise suspended revoked or denied Licensees importexport privileges Licensee agrees not to use or transfer the SDK for any use relating to nuclear chemical or biological weapons or missile technology unless authorized by the US andor any applicable local government by regulation or specific written license Additionally Licensee is advised that the SDK may contain encryption algorithm or source code that may not be exported to government or military

end users without a license issued by the US Bureau of Industry and Security and any other countryrsquos governmental agencies where applicable 170 AGREEMENT IN ENGLISH The parties confirm that it is their wish that the Agreement as well as all other documents relating hereto including all notices have been and shall be drawn up in the English language only Les parties aux preacutesentes confirment leur volonteacute que cette convention de mecircme que tous les documents y compris tout avis qui sy rattachent soient reacutedigeacutes en langue anglaise 180 ENTIRE AGREEMENT This Agreement its exhibits and other agreements or documents referenced herein constitute the full and complete understanding and agreement between the parties and supersede all contemporaneous and prior understandings agreements (excluding the Avaya DevConnect Program Agreement) and representations relating to the subject matter hereof No modifications alterations or amendments shall be effective unless in writing signed by both parties to this Agreement 19 REDISTRIBUTABLE CLIENT FILES The list of SDK client files that can be redistributed if any are in the SDK in a file called Redistributabletxt

Table of Contents

Table of Figures 8 1 About this document 9

11 Scope of the document 9 12 Intended audience 10 13 Conventions used in the document 10 14 Related documents 10 15 Providing documentation feedback 10 16 Historical View 10

2 Architecture Overview 11 3 POM and Recorder Application Integration Design 14

31 Getting started 14 311 InstallUpgrade POM 14 312 Configure Communication Manager and Application Enablement Services 14 313 Configure POM 15

32 Connecting POM and Recorder Application 17 321 POM deployment with recorder 17 322 TCP based connection 18 323 TLS based secured connection 19 324 Verify connection between POM and Recorder 21 325 Link failure and recovery 22

33 Recording per Zone 22 34 Failure and Recovery 25

341 POM Server Failure 25 342 Recorder application failure 26

35 High Availability 27 351 POM server failover 27 352 Zone failover 29

36 Licensing 30 4 POM Recording Events 31

41 Recorder login and listing agents 31 411 LoginRequest Event 32 412 LoginResponse Event 33 413 ListAgentsRequest Event 33 414 ListAgentsResponse Event 34 415 Logout 34

42 Agent states and associated recording events 35 421 AgentAcquire Event 35 422 AgentRelease Event 35 423 MediaInfo Event 36 424 MediaComplete Event 37

5 POM Call Scenarios 38 51 Scenario Agent working on call 38 52 Scenario Agent holds while working on call 40 53 Scenario Agent consulttransfer while working on call 43 54 Scenario Agent consultconference while working on call 47

6 Sample Client 52 7 Limitations 52 Appendix A ndash Glossary 53 Appendix B ndash Content out of scope 54 Appendix C ndash Troubleshooting 54

Table of Figures Figure 1 Solution architecture view of POM with CC-Elite 11 Figure 2 Solution architecture view of POM with AACC 12 Figure 3 POM nailing request ndash call flow 13 Figure 4 POM dialing customer ndash call flow 13 Figure 5 POM agent talking to customer ndash call flow 14 Figure 6 Global configuration 15 Figure 7 Enable recorder 15 Figure 8 Edit NailerDriver application 16 Figure 9 Generate UCID settings 16 Figure 10 Single POM and recorder application deployment view 17 Figure 11 Multiple POM and recorder application deployment view 18 Figure 12 Connection sequence between POM and recorder application 19 Figure 13 Enable secured connection with recorder 20 Figure 14 POM certificate export option 20 Figure 15 Successful TCP connection established between POM and Recorder 21 Figure 16 Successful TLS connection established between POM and Recorder 21 Figure 17 Multiple POM zonal deployment with recorder 23 Figure 18 All zone configuration 24 Figure 19 Comma separated zone configuration 24 Figure 20 Recording events for configured zones 24 Figure 21 POM server failure 25 Figure 22 Recorder application failure 26 Figure 23 Primary and Aux POM servers connected with recorder 27 Figure 24 Failover of POM server managing zone 28 Figure 25 Zone failover 30 Figure 26 Sequence to receive events with registered agent details 31 Figure 27 Sequence to receive events and request for registered agent details 32 Figure 28 LoginRequest XML message 33 Figure 29 LoginResponse XML message 33 Figure 30 ListAgentsRequest XML message 34 Figure 31 ListAgentsResponse XML message 34 Figure 32 AgentAcquireEvent XML message 35 Figure 33 AgentReleaseEvent XML message 36 Figure 34 MediaInfoEvent XML message 37 Figure 35 MediaCompleteEvent XML message 38 Figure 36 Scenario Agent working on call 39 Figure 37 Scenario Agent puts customer on hold 41 Figure 38 Scenario Agent consults with other agent 44 Figure 39 Scenario Agent conferencing other agent 48

1 About this document This chapter describes

Scope of the document

Intended audience

Conventions used in the document

Related documents

Providing documentation feedback

Historical view

11 Scope of the document This document gives details of design and APIs provided by Proactive Outreach Manager (POM) for integration with any third party voice call recorder Proactive Outreach Manager is an outbound dialer and provides agent based as well as agent less dialing as one of its key feature Please note prior to POM 304 only Avaya Recorder was supported for call recording in POM 301 In POM 304 and above support is added for third-party call recording solutions Note Recording feature available in POM 30 allows the recording application to connect with POM over a TCP connection whereas the POM 304 enhances this by providing TLS based connection apart from the support for TCP to be backward compatible This document covers solution architecture and key concepts of POM integration design of POM and recorder the recording events various call scenarios and troubleshooting techniques as part of below chapters

Chapter 2 Architecture Overview - introduces the solution deployment architecture for general awareness of POM concepts and prerequisites for agent based dialing operations

Chapter 3 POM and Recorder Application Integration Design ndash details the design of the POM components interacting with the recording application elaborating the logical sequence of basic call flow and recording activities It also covers the multi-server deployment failover scenarios and zoning with respect to integration of POM with any recording application

Chapter 4 POM Recording Events - details all possible recording events in the form of APIs provided by POM

Chapter 5 POM Call Scenarios - covers various agent based call scenarios and the unlined sequence of messages

Chapter 6 Sample Client ndash explains the sample client code for the recording application developersintegrators

Chapter 7 Limitations and Caveats ndash describes potential enhancements in POM recorder integration design

Note This document does not cover administration and configuration details of aura products Avaya Auratrade Communication Manager Avaya Auratrade Enablement Services Avaya Contact Recorder These documents are called out in the related documents chapter

12 Intended audience This document is developed for deployment engineers and recording application developers in order to enable them in integrating recorder application with Proactive Outreach Manager The audience of this document is expected to know

Java

XML

Proactive Outreach Manager Solution overview

Avaya Aura components like Application Enablement Service Communication Manager Session Manager and System Manager

13 Conventions used in the document The following fonts are used in this document

To represent This font is used

Document Name Document Name(ex Using POM)

Linux commands Command (ex sbinservice POM restart)

Java Code javanetSocket

Note Note

Event NamesXml Event name (ex LoginRequest)

14 Related documents Document Description

CM Admin Guide Administering Avaya Aurareg Communication Manager

SM Admin Guide Administering Avaya Aurareg Session Manager

EPMPP Admin Guide Administering Avaya Aurareg Experience Portal

AES Admin Guide Administering and Maintaining Avaya Aurareg Application Enablement Services

Guide on DMCC Avaya Aurareg Application Enablement Services

ACR Admin Guide Avaya Contact Recorder Release 151 Planning Installation and Administration Guide

POM design and product documents Using Proactive Outreach Manager

15 Providing documentation feedback Let us know what you like or do not like about this document Although we cannot respond personally to all your feedback we promise we read each response we receive Please email feedback to documentavayacom

16 Historical View POM Release Support Purpose

301 TCP based integration with Minimum version of

Avaya Contact Recorder (ACR)

POM required for POM-Recorder integration is 301

Integration supported with ACR only

Integration between POM and ACR is based on TCP protocol

304 and above TLS based integration with third party recorder

Enhanced to support TLS based integration with third party recorder

Supports backward compatibility for TCP based integration with ACR

2 Architecture Overview This section describes the solution architecture of POM highlighting the adjunct products required for POM It also covers the basic concepts of POM used in the context of call recording functionality There are two deployment scenarios one with Avaya Contact Center Elite (CCElite) and another with Avaya Aura Contact Center (AACC) Following diagram gives the architectural view of POM with CCElite and ACR as the call recorder highlighting the adjuncts required for POM to function

Figure 1 Solution architecture view of POM with CC-Elite

Below diagram gives the architectural view of POM with AACC and ACR as the recorder highlighting the adjuncts required for POM to function

Figure 2 Solution architecture view of POM with AACC

As depicted in the above 2 diagrams POM is deployed as a managed application on Experience Portal as the platform As for the adjuncts POM needs Media Processing Platform (MPP) Session Manager (SM) Communication Manager (CM) Application Enablement Service (AES) products to provide an outbound dialer solution along with recording As shown above POM leverages the platform features and web services to perform the outbound operations For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP which in turn sends SIP invite to SM all the way to CM Also POM fetches the agent login and skill details using the AES SMS web service POM interacts with CMS via socket and uses rt_socket package to receive the skill feeds of the agents whose skills are configured and monitored in POM for blending operation POM interacts with ACR (sample recording application in the above diagram) over socket connection to send any recording events and ACR uses Device Media Call Control (DMCC) service of AES to trigger the call recording ACR receives the media stream from the media gateway (be it the Avaya Media server (AMS) or a G series gateway) registered with the CM For details please refer to material listed in Reference Material section for administration and provisioning documentation for these products For ease of understanding an agent based outbound call flow - explaining basic POM concepts in context of recording is explained below In order to work on any agent based outbound call POM first registers the agent also referred to as lsquonail the agentrsquo The agent nailing flow is depicted below

Figure 3 POM nailing request ndash call flow

The POM Nailer application is a CCXML application shipped as one of the POM suite of applications using for running outbound call campaigns Nailer is responsible for placing the call to an agent prior to running an agent based campaign Nailing refers to keeping an agent connection alive during multiple outbound calls during the outbound calling campaign The call is initiated using a SIP INVITE sent by MPP to CM which results in RTP established between the MPP and the CM (or more specifically the gateway registered with CM) Once the agent is nailed to call from POM POM utilizes this agent for working on customer calls There are 3 types of agent based calls in POM namely preview predictive and progressive In preview the agent is first connected by POM and then the customer information is provided to the agent by POM and agent chooses to dial the customer Whereas in progressive and predictive the customer is first connecteddialed by POM and once connected POM identifies the best suitable agent to talk to the customer using skills based routing Call flows explaining the customer call connect and patching the agent with the customer is depicted below

Figure 4 POM dialing customer ndash call flow

POM requests the platform to send INVITE to the customer and create the customerrsquos call leg Now the customer and the agent leg are connected as a conference on the MPP hosting the agent POM uses INVITE with REPLACE to achieve this

Figure 5 POM agent talking to customer ndash call flow

Every call between the customer and a nailed agent is a conference on the MPP POMrsquos nailer app requests EP to initiate an INVITE wt REPLACE as soon as it finds best agent to work on the customer call Thus conceptually recording a call is adding the recorder application as one of the participants to the conference created between a customer and a nailed agent however the physical implementation of this is not via a conference on the MPP but rather using the DMCC protocol available on CM Thus a conference is formed on communication manager between the customer the call from the MPP which is connected to the agent via CM and the call recorder via a DMCC station that was registered by AE Services to Communication Manager Once an agent is done with working on a call heshe can wrap-up the call and enter the dispositioncompletion details of the call Note that the inter-working of DMCC is out of scope of this document please refer Related Documents section This section covered in nutshell the basic concepts of POM nailing agentcustomer connections and previewprogressivepredictive dialing and wrap-up in context of agent based outbound operations

3 POM and Recorder Application Integration Design

31 Getting started This section covers the pre-requisites for any recorder application to integrate and receive call related events from POM for the purpose of call recording

311 InstallUpgrade POM First things first installupgrade to latest POM version Please refer Implementing POM and Using POM product documents available on supportavayacom

312 Configure Communication Manager and Application Enablement Services

Configure Communication Manager and Application Enablement Services as explained in reference document Application Notes to Integrate Avaya Contact Recorder 120 with Avaya Proactive Outreach Manager 30 using Avaya Aurareg Application Enablement Services 63 ndash Issue 11 available on Dev connect

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

Table of Contents

Table of Figures 8 1 About this document 9

11 Scope of the document 9 12 Intended audience 10 13 Conventions used in the document 10 14 Related documents 10 15 Providing documentation feedback 10 16 Historical View 10

2 Architecture Overview 11 3 POM and Recorder Application Integration Design 14

31 Getting started 14 311 InstallUpgrade POM 14 312 Configure Communication Manager and Application Enablement Services 14 313 Configure POM 15

32 Connecting POM and Recorder Application 17 321 POM deployment with recorder 17 322 TCP based connection 18 323 TLS based secured connection 19 324 Verify connection between POM and Recorder 21 325 Link failure and recovery 22

33 Recording per Zone 22 34 Failure and Recovery 25

341 POM Server Failure 25 342 Recorder application failure 26

35 High Availability 27 351 POM server failover 27 352 Zone failover 29

36 Licensing 30 4 POM Recording Events 31

41 Recorder login and listing agents 31 411 LoginRequest Event 32 412 LoginResponse Event 33 413 ListAgentsRequest Event 33 414 ListAgentsResponse Event 34 415 Logout 34

42 Agent states and associated recording events 35 421 AgentAcquire Event 35 422 AgentRelease Event 35 423 MediaInfo Event 36 424 MediaComplete Event 37

5 POM Call Scenarios 38 51 Scenario Agent working on call 38 52 Scenario Agent holds while working on call 40 53 Scenario Agent consulttransfer while working on call 43 54 Scenario Agent consultconference while working on call 47

6 Sample Client 52 7 Limitations 52 Appendix A ndash Glossary 53 Appendix B ndash Content out of scope 54 Appendix C ndash Troubleshooting 54

Table of Figures Figure 1 Solution architecture view of POM with CC-Elite 11 Figure 2 Solution architecture view of POM with AACC 12 Figure 3 POM nailing request ndash call flow 13 Figure 4 POM dialing customer ndash call flow 13 Figure 5 POM agent talking to customer ndash call flow 14 Figure 6 Global configuration 15 Figure 7 Enable recorder 15 Figure 8 Edit NailerDriver application 16 Figure 9 Generate UCID settings 16 Figure 10 Single POM and recorder application deployment view 17 Figure 11 Multiple POM and recorder application deployment view 18 Figure 12 Connection sequence between POM and recorder application 19 Figure 13 Enable secured connection with recorder 20 Figure 14 POM certificate export option 20 Figure 15 Successful TCP connection established between POM and Recorder 21 Figure 16 Successful TLS connection established between POM and Recorder 21 Figure 17 Multiple POM zonal deployment with recorder 23 Figure 18 All zone configuration 24 Figure 19 Comma separated zone configuration 24 Figure 20 Recording events for configured zones 24 Figure 21 POM server failure 25 Figure 22 Recorder application failure 26 Figure 23 Primary and Aux POM servers connected with recorder 27 Figure 24 Failover of POM server managing zone 28 Figure 25 Zone failover 30 Figure 26 Sequence to receive events with registered agent details 31 Figure 27 Sequence to receive events and request for registered agent details 32 Figure 28 LoginRequest XML message 33 Figure 29 LoginResponse XML message 33 Figure 30 ListAgentsRequest XML message 34 Figure 31 ListAgentsResponse XML message 34 Figure 32 AgentAcquireEvent XML message 35 Figure 33 AgentReleaseEvent XML message 36 Figure 34 MediaInfoEvent XML message 37 Figure 35 MediaCompleteEvent XML message 38 Figure 36 Scenario Agent working on call 39 Figure 37 Scenario Agent puts customer on hold 41 Figure 38 Scenario Agent consults with other agent 44 Figure 39 Scenario Agent conferencing other agent 48

1 About this document This chapter describes

Scope of the document

Intended audience

Conventions used in the document

Related documents

Providing documentation feedback

Historical view

11 Scope of the document This document gives details of design and APIs provided by Proactive Outreach Manager (POM) for integration with any third party voice call recorder Proactive Outreach Manager is an outbound dialer and provides agent based as well as agent less dialing as one of its key feature Please note prior to POM 304 only Avaya Recorder was supported for call recording in POM 301 In POM 304 and above support is added for third-party call recording solutions Note Recording feature available in POM 30 allows the recording application to connect with POM over a TCP connection whereas the POM 304 enhances this by providing TLS based connection apart from the support for TCP to be backward compatible This document covers solution architecture and key concepts of POM integration design of POM and recorder the recording events various call scenarios and troubleshooting techniques as part of below chapters

Chapter 2 Architecture Overview - introduces the solution deployment architecture for general awareness of POM concepts and prerequisites for agent based dialing operations

Chapter 3 POM and Recorder Application Integration Design ndash details the design of the POM components interacting with the recording application elaborating the logical sequence of basic call flow and recording activities It also covers the multi-server deployment failover scenarios and zoning with respect to integration of POM with any recording application

Chapter 4 POM Recording Events - details all possible recording events in the form of APIs provided by POM

Chapter 5 POM Call Scenarios - covers various agent based call scenarios and the unlined sequence of messages

Chapter 6 Sample Client ndash explains the sample client code for the recording application developersintegrators

Chapter 7 Limitations and Caveats ndash describes potential enhancements in POM recorder integration design

Note This document does not cover administration and configuration details of aura products Avaya Auratrade Communication Manager Avaya Auratrade Enablement Services Avaya Contact Recorder These documents are called out in the related documents chapter

12 Intended audience This document is developed for deployment engineers and recording application developers in order to enable them in integrating recorder application with Proactive Outreach Manager The audience of this document is expected to know

Java

XML

Proactive Outreach Manager Solution overview

Avaya Aura components like Application Enablement Service Communication Manager Session Manager and System Manager

13 Conventions used in the document The following fonts are used in this document

To represent This font is used

Document Name Document Name(ex Using POM)

Linux commands Command (ex sbinservice POM restart)

Java Code javanetSocket

Note Note

Event NamesXml Event name (ex LoginRequest)

14 Related documents Document Description

CM Admin Guide Administering Avaya Aurareg Communication Manager

SM Admin Guide Administering Avaya Aurareg Session Manager

EPMPP Admin Guide Administering Avaya Aurareg Experience Portal

AES Admin Guide Administering and Maintaining Avaya Aurareg Application Enablement Services

Guide on DMCC Avaya Aurareg Application Enablement Services

ACR Admin Guide Avaya Contact Recorder Release 151 Planning Installation and Administration Guide

POM design and product documents Using Proactive Outreach Manager

15 Providing documentation feedback Let us know what you like or do not like about this document Although we cannot respond personally to all your feedback we promise we read each response we receive Please email feedback to documentavayacom

16 Historical View POM Release Support Purpose

301 TCP based integration with Minimum version of

Avaya Contact Recorder (ACR)

POM required for POM-Recorder integration is 301

Integration supported with ACR only

Integration between POM and ACR is based on TCP protocol

304 and above TLS based integration with third party recorder

Enhanced to support TLS based integration with third party recorder

Supports backward compatibility for TCP based integration with ACR

2 Architecture Overview This section describes the solution architecture of POM highlighting the adjunct products required for POM It also covers the basic concepts of POM used in the context of call recording functionality There are two deployment scenarios one with Avaya Contact Center Elite (CCElite) and another with Avaya Aura Contact Center (AACC) Following diagram gives the architectural view of POM with CCElite and ACR as the call recorder highlighting the adjuncts required for POM to function

Figure 1 Solution architecture view of POM with CC-Elite

Below diagram gives the architectural view of POM with AACC and ACR as the recorder highlighting the adjuncts required for POM to function

Figure 2 Solution architecture view of POM with AACC

As depicted in the above 2 diagrams POM is deployed as a managed application on Experience Portal as the platform As for the adjuncts POM needs Media Processing Platform (MPP) Session Manager (SM) Communication Manager (CM) Application Enablement Service (AES) products to provide an outbound dialer solution along with recording As shown above POM leverages the platform features and web services to perform the outbound operations For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP which in turn sends SIP invite to SM all the way to CM Also POM fetches the agent login and skill details using the AES SMS web service POM interacts with CMS via socket and uses rt_socket package to receive the skill feeds of the agents whose skills are configured and monitored in POM for blending operation POM interacts with ACR (sample recording application in the above diagram) over socket connection to send any recording events and ACR uses Device Media Call Control (DMCC) service of AES to trigger the call recording ACR receives the media stream from the media gateway (be it the Avaya Media server (AMS) or a G series gateway) registered with the CM For details please refer to material listed in Reference Material section for administration and provisioning documentation for these products For ease of understanding an agent based outbound call flow - explaining basic POM concepts in context of recording is explained below In order to work on any agent based outbound call POM first registers the agent also referred to as lsquonail the agentrsquo The agent nailing flow is depicted below

Figure 3 POM nailing request ndash call flow

The POM Nailer application is a CCXML application shipped as one of the POM suite of applications using for running outbound call campaigns Nailer is responsible for placing the call to an agent prior to running an agent based campaign Nailing refers to keeping an agent connection alive during multiple outbound calls during the outbound calling campaign The call is initiated using a SIP INVITE sent by MPP to CM which results in RTP established between the MPP and the CM (or more specifically the gateway registered with CM) Once the agent is nailed to call from POM POM utilizes this agent for working on customer calls There are 3 types of agent based calls in POM namely preview predictive and progressive In preview the agent is first connected by POM and then the customer information is provided to the agent by POM and agent chooses to dial the customer Whereas in progressive and predictive the customer is first connecteddialed by POM and once connected POM identifies the best suitable agent to talk to the customer using skills based routing Call flows explaining the customer call connect and patching the agent with the customer is depicted below

Figure 4 POM dialing customer ndash call flow

POM requests the platform to send INVITE to the customer and create the customerrsquos call leg Now the customer and the agent leg are connected as a conference on the MPP hosting the agent POM uses INVITE with REPLACE to achieve this

Figure 5 POM agent talking to customer ndash call flow

Every call between the customer and a nailed agent is a conference on the MPP POMrsquos nailer app requests EP to initiate an INVITE wt REPLACE as soon as it finds best agent to work on the customer call Thus conceptually recording a call is adding the recorder application as one of the participants to the conference created between a customer and a nailed agent however the physical implementation of this is not via a conference on the MPP but rather using the DMCC protocol available on CM Thus a conference is formed on communication manager between the customer the call from the MPP which is connected to the agent via CM and the call recorder via a DMCC station that was registered by AE Services to Communication Manager Once an agent is done with working on a call heshe can wrap-up the call and enter the dispositioncompletion details of the call Note that the inter-working of DMCC is out of scope of this document please refer Related Documents section This section covered in nutshell the basic concepts of POM nailing agentcustomer connections and previewprogressivepredictive dialing and wrap-up in context of agent based outbound operations

3 POM and Recorder Application Integration Design

31 Getting started This section covers the pre-requisites for any recorder application to integrate and receive call related events from POM for the purpose of call recording

311 InstallUpgrade POM First things first installupgrade to latest POM version Please refer Implementing POM and Using POM product documents available on supportavayacom

312 Configure Communication Manager and Application Enablement Services

Configure Communication Manager and Application Enablement Services as explained in reference document Application Notes to Integrate Avaya Contact Recorder 120 with Avaya Proactive Outreach Manager 30 using Avaya Aurareg Application Enablement Services 63 ndash Issue 11 available on Dev connect

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

Table of Figures Figure 1 Solution architecture view of POM with CC-Elite 11 Figure 2 Solution architecture view of POM with AACC 12 Figure 3 POM nailing request ndash call flow 13 Figure 4 POM dialing customer ndash call flow 13 Figure 5 POM agent talking to customer ndash call flow 14 Figure 6 Global configuration 15 Figure 7 Enable recorder 15 Figure 8 Edit NailerDriver application 16 Figure 9 Generate UCID settings 16 Figure 10 Single POM and recorder application deployment view 17 Figure 11 Multiple POM and recorder application deployment view 18 Figure 12 Connection sequence between POM and recorder application 19 Figure 13 Enable secured connection with recorder 20 Figure 14 POM certificate export option 20 Figure 15 Successful TCP connection established between POM and Recorder 21 Figure 16 Successful TLS connection established between POM and Recorder 21 Figure 17 Multiple POM zonal deployment with recorder 23 Figure 18 All zone configuration 24 Figure 19 Comma separated zone configuration 24 Figure 20 Recording events for configured zones 24 Figure 21 POM server failure 25 Figure 22 Recorder application failure 26 Figure 23 Primary and Aux POM servers connected with recorder 27 Figure 24 Failover of POM server managing zone 28 Figure 25 Zone failover 30 Figure 26 Sequence to receive events with registered agent details 31 Figure 27 Sequence to receive events and request for registered agent details 32 Figure 28 LoginRequest XML message 33 Figure 29 LoginResponse XML message 33 Figure 30 ListAgentsRequest XML message 34 Figure 31 ListAgentsResponse XML message 34 Figure 32 AgentAcquireEvent XML message 35 Figure 33 AgentReleaseEvent XML message 36 Figure 34 MediaInfoEvent XML message 37 Figure 35 MediaCompleteEvent XML message 38 Figure 36 Scenario Agent working on call 39 Figure 37 Scenario Agent puts customer on hold 41 Figure 38 Scenario Agent consults with other agent 44 Figure 39 Scenario Agent conferencing other agent 48

1 About this document This chapter describes

Scope of the document

Intended audience

Conventions used in the document

Related documents

Providing documentation feedback

Historical view

11 Scope of the document This document gives details of design and APIs provided by Proactive Outreach Manager (POM) for integration with any third party voice call recorder Proactive Outreach Manager is an outbound dialer and provides agent based as well as agent less dialing as one of its key feature Please note prior to POM 304 only Avaya Recorder was supported for call recording in POM 301 In POM 304 and above support is added for third-party call recording solutions Note Recording feature available in POM 30 allows the recording application to connect with POM over a TCP connection whereas the POM 304 enhances this by providing TLS based connection apart from the support for TCP to be backward compatible This document covers solution architecture and key concepts of POM integration design of POM and recorder the recording events various call scenarios and troubleshooting techniques as part of below chapters

Chapter 2 Architecture Overview - introduces the solution deployment architecture for general awareness of POM concepts and prerequisites for agent based dialing operations

Chapter 3 POM and Recorder Application Integration Design ndash details the design of the POM components interacting with the recording application elaborating the logical sequence of basic call flow and recording activities It also covers the multi-server deployment failover scenarios and zoning with respect to integration of POM with any recording application

Chapter 4 POM Recording Events - details all possible recording events in the form of APIs provided by POM

Chapter 5 POM Call Scenarios - covers various agent based call scenarios and the unlined sequence of messages

Chapter 6 Sample Client ndash explains the sample client code for the recording application developersintegrators

Chapter 7 Limitations and Caveats ndash describes potential enhancements in POM recorder integration design

Note This document does not cover administration and configuration details of aura products Avaya Auratrade Communication Manager Avaya Auratrade Enablement Services Avaya Contact Recorder These documents are called out in the related documents chapter

12 Intended audience This document is developed for deployment engineers and recording application developers in order to enable them in integrating recorder application with Proactive Outreach Manager The audience of this document is expected to know

Java

XML

Proactive Outreach Manager Solution overview

Avaya Aura components like Application Enablement Service Communication Manager Session Manager and System Manager

13 Conventions used in the document The following fonts are used in this document

To represent This font is used

Document Name Document Name(ex Using POM)

Linux commands Command (ex sbinservice POM restart)

Java Code javanetSocket

Note Note

Event NamesXml Event name (ex LoginRequest)

14 Related documents Document Description

CM Admin Guide Administering Avaya Aurareg Communication Manager

SM Admin Guide Administering Avaya Aurareg Session Manager

EPMPP Admin Guide Administering Avaya Aurareg Experience Portal

AES Admin Guide Administering and Maintaining Avaya Aurareg Application Enablement Services

Guide on DMCC Avaya Aurareg Application Enablement Services

ACR Admin Guide Avaya Contact Recorder Release 151 Planning Installation and Administration Guide

POM design and product documents Using Proactive Outreach Manager

15 Providing documentation feedback Let us know what you like or do not like about this document Although we cannot respond personally to all your feedback we promise we read each response we receive Please email feedback to documentavayacom

16 Historical View POM Release Support Purpose

301 TCP based integration with Minimum version of

Avaya Contact Recorder (ACR)

POM required for POM-Recorder integration is 301

Integration supported with ACR only

Integration between POM and ACR is based on TCP protocol

304 and above TLS based integration with third party recorder

Enhanced to support TLS based integration with third party recorder

Supports backward compatibility for TCP based integration with ACR

2 Architecture Overview This section describes the solution architecture of POM highlighting the adjunct products required for POM It also covers the basic concepts of POM used in the context of call recording functionality There are two deployment scenarios one with Avaya Contact Center Elite (CCElite) and another with Avaya Aura Contact Center (AACC) Following diagram gives the architectural view of POM with CCElite and ACR as the call recorder highlighting the adjuncts required for POM to function

Figure 1 Solution architecture view of POM with CC-Elite

Below diagram gives the architectural view of POM with AACC and ACR as the recorder highlighting the adjuncts required for POM to function

Figure 2 Solution architecture view of POM with AACC

As depicted in the above 2 diagrams POM is deployed as a managed application on Experience Portal as the platform As for the adjuncts POM needs Media Processing Platform (MPP) Session Manager (SM) Communication Manager (CM) Application Enablement Service (AES) products to provide an outbound dialer solution along with recording As shown above POM leverages the platform features and web services to perform the outbound operations For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP which in turn sends SIP invite to SM all the way to CM Also POM fetches the agent login and skill details using the AES SMS web service POM interacts with CMS via socket and uses rt_socket package to receive the skill feeds of the agents whose skills are configured and monitored in POM for blending operation POM interacts with ACR (sample recording application in the above diagram) over socket connection to send any recording events and ACR uses Device Media Call Control (DMCC) service of AES to trigger the call recording ACR receives the media stream from the media gateway (be it the Avaya Media server (AMS) or a G series gateway) registered with the CM For details please refer to material listed in Reference Material section for administration and provisioning documentation for these products For ease of understanding an agent based outbound call flow - explaining basic POM concepts in context of recording is explained below In order to work on any agent based outbound call POM first registers the agent also referred to as lsquonail the agentrsquo The agent nailing flow is depicted below

Figure 3 POM nailing request ndash call flow

The POM Nailer application is a CCXML application shipped as one of the POM suite of applications using for running outbound call campaigns Nailer is responsible for placing the call to an agent prior to running an agent based campaign Nailing refers to keeping an agent connection alive during multiple outbound calls during the outbound calling campaign The call is initiated using a SIP INVITE sent by MPP to CM which results in RTP established between the MPP and the CM (or more specifically the gateway registered with CM) Once the agent is nailed to call from POM POM utilizes this agent for working on customer calls There are 3 types of agent based calls in POM namely preview predictive and progressive In preview the agent is first connected by POM and then the customer information is provided to the agent by POM and agent chooses to dial the customer Whereas in progressive and predictive the customer is first connecteddialed by POM and once connected POM identifies the best suitable agent to talk to the customer using skills based routing Call flows explaining the customer call connect and patching the agent with the customer is depicted below

Figure 4 POM dialing customer ndash call flow

POM requests the platform to send INVITE to the customer and create the customerrsquos call leg Now the customer and the agent leg are connected as a conference on the MPP hosting the agent POM uses INVITE with REPLACE to achieve this

Figure 5 POM agent talking to customer ndash call flow

Every call between the customer and a nailed agent is a conference on the MPP POMrsquos nailer app requests EP to initiate an INVITE wt REPLACE as soon as it finds best agent to work on the customer call Thus conceptually recording a call is adding the recorder application as one of the participants to the conference created between a customer and a nailed agent however the physical implementation of this is not via a conference on the MPP but rather using the DMCC protocol available on CM Thus a conference is formed on communication manager between the customer the call from the MPP which is connected to the agent via CM and the call recorder via a DMCC station that was registered by AE Services to Communication Manager Once an agent is done with working on a call heshe can wrap-up the call and enter the dispositioncompletion details of the call Note that the inter-working of DMCC is out of scope of this document please refer Related Documents section This section covered in nutshell the basic concepts of POM nailing agentcustomer connections and previewprogressivepredictive dialing and wrap-up in context of agent based outbound operations

3 POM and Recorder Application Integration Design

31 Getting started This section covers the pre-requisites for any recorder application to integrate and receive call related events from POM for the purpose of call recording

311 InstallUpgrade POM First things first installupgrade to latest POM version Please refer Implementing POM and Using POM product documents available on supportavayacom

312 Configure Communication Manager and Application Enablement Services

Configure Communication Manager and Application Enablement Services as explained in reference document Application Notes to Integrate Avaya Contact Recorder 120 with Avaya Proactive Outreach Manager 30 using Avaya Aurareg Application Enablement Services 63 ndash Issue 11 available on Dev connect

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

1 About this document This chapter describes

Scope of the document

Intended audience

Conventions used in the document

Related documents

Providing documentation feedback

Historical view

11 Scope of the document This document gives details of design and APIs provided by Proactive Outreach Manager (POM) for integration with any third party voice call recorder Proactive Outreach Manager is an outbound dialer and provides agent based as well as agent less dialing as one of its key feature Please note prior to POM 304 only Avaya Recorder was supported for call recording in POM 301 In POM 304 and above support is added for third-party call recording solutions Note Recording feature available in POM 30 allows the recording application to connect with POM over a TCP connection whereas the POM 304 enhances this by providing TLS based connection apart from the support for TCP to be backward compatible This document covers solution architecture and key concepts of POM integration design of POM and recorder the recording events various call scenarios and troubleshooting techniques as part of below chapters

Chapter 2 Architecture Overview - introduces the solution deployment architecture for general awareness of POM concepts and prerequisites for agent based dialing operations

Chapter 3 POM and Recorder Application Integration Design ndash details the design of the POM components interacting with the recording application elaborating the logical sequence of basic call flow and recording activities It also covers the multi-server deployment failover scenarios and zoning with respect to integration of POM with any recording application

Chapter 4 POM Recording Events - details all possible recording events in the form of APIs provided by POM

Chapter 5 POM Call Scenarios - covers various agent based call scenarios and the unlined sequence of messages

Chapter 6 Sample Client ndash explains the sample client code for the recording application developersintegrators

Chapter 7 Limitations and Caveats ndash describes potential enhancements in POM recorder integration design

Note This document does not cover administration and configuration details of aura products Avaya Auratrade Communication Manager Avaya Auratrade Enablement Services Avaya Contact Recorder These documents are called out in the related documents chapter

12 Intended audience This document is developed for deployment engineers and recording application developers in order to enable them in integrating recorder application with Proactive Outreach Manager The audience of this document is expected to know

Java

XML

Proactive Outreach Manager Solution overview

Avaya Aura components like Application Enablement Service Communication Manager Session Manager and System Manager

13 Conventions used in the document The following fonts are used in this document

To represent This font is used

Document Name Document Name(ex Using POM)

Linux commands Command (ex sbinservice POM restart)

Java Code javanetSocket

Note Note

Event NamesXml Event name (ex LoginRequest)

14 Related documents Document Description

CM Admin Guide Administering Avaya Aurareg Communication Manager

SM Admin Guide Administering Avaya Aurareg Session Manager

EPMPP Admin Guide Administering Avaya Aurareg Experience Portal

AES Admin Guide Administering and Maintaining Avaya Aurareg Application Enablement Services

Guide on DMCC Avaya Aurareg Application Enablement Services

ACR Admin Guide Avaya Contact Recorder Release 151 Planning Installation and Administration Guide

POM design and product documents Using Proactive Outreach Manager

15 Providing documentation feedback Let us know what you like or do not like about this document Although we cannot respond personally to all your feedback we promise we read each response we receive Please email feedback to documentavayacom

16 Historical View POM Release Support Purpose

301 TCP based integration with Minimum version of

Avaya Contact Recorder (ACR)

POM required for POM-Recorder integration is 301

Integration supported with ACR only

Integration between POM and ACR is based on TCP protocol

304 and above TLS based integration with third party recorder

Enhanced to support TLS based integration with third party recorder

Supports backward compatibility for TCP based integration with ACR

2 Architecture Overview This section describes the solution architecture of POM highlighting the adjunct products required for POM It also covers the basic concepts of POM used in the context of call recording functionality There are two deployment scenarios one with Avaya Contact Center Elite (CCElite) and another with Avaya Aura Contact Center (AACC) Following diagram gives the architectural view of POM with CCElite and ACR as the call recorder highlighting the adjuncts required for POM to function

Figure 1 Solution architecture view of POM with CC-Elite

Below diagram gives the architectural view of POM with AACC and ACR as the recorder highlighting the adjuncts required for POM to function

Figure 2 Solution architecture view of POM with AACC

As depicted in the above 2 diagrams POM is deployed as a managed application on Experience Portal as the platform As for the adjuncts POM needs Media Processing Platform (MPP) Session Manager (SM) Communication Manager (CM) Application Enablement Service (AES) products to provide an outbound dialer solution along with recording As shown above POM leverages the platform features and web services to perform the outbound operations For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP which in turn sends SIP invite to SM all the way to CM Also POM fetches the agent login and skill details using the AES SMS web service POM interacts with CMS via socket and uses rt_socket package to receive the skill feeds of the agents whose skills are configured and monitored in POM for blending operation POM interacts with ACR (sample recording application in the above diagram) over socket connection to send any recording events and ACR uses Device Media Call Control (DMCC) service of AES to trigger the call recording ACR receives the media stream from the media gateway (be it the Avaya Media server (AMS) or a G series gateway) registered with the CM For details please refer to material listed in Reference Material section for administration and provisioning documentation for these products For ease of understanding an agent based outbound call flow - explaining basic POM concepts in context of recording is explained below In order to work on any agent based outbound call POM first registers the agent also referred to as lsquonail the agentrsquo The agent nailing flow is depicted below

Figure 3 POM nailing request ndash call flow

The POM Nailer application is a CCXML application shipped as one of the POM suite of applications using for running outbound call campaigns Nailer is responsible for placing the call to an agent prior to running an agent based campaign Nailing refers to keeping an agent connection alive during multiple outbound calls during the outbound calling campaign The call is initiated using a SIP INVITE sent by MPP to CM which results in RTP established between the MPP and the CM (or more specifically the gateway registered with CM) Once the agent is nailed to call from POM POM utilizes this agent for working on customer calls There are 3 types of agent based calls in POM namely preview predictive and progressive In preview the agent is first connected by POM and then the customer information is provided to the agent by POM and agent chooses to dial the customer Whereas in progressive and predictive the customer is first connecteddialed by POM and once connected POM identifies the best suitable agent to talk to the customer using skills based routing Call flows explaining the customer call connect and patching the agent with the customer is depicted below

Figure 4 POM dialing customer ndash call flow

POM requests the platform to send INVITE to the customer and create the customerrsquos call leg Now the customer and the agent leg are connected as a conference on the MPP hosting the agent POM uses INVITE with REPLACE to achieve this

Figure 5 POM agent talking to customer ndash call flow

Every call between the customer and a nailed agent is a conference on the MPP POMrsquos nailer app requests EP to initiate an INVITE wt REPLACE as soon as it finds best agent to work on the customer call Thus conceptually recording a call is adding the recorder application as one of the participants to the conference created between a customer and a nailed agent however the physical implementation of this is not via a conference on the MPP but rather using the DMCC protocol available on CM Thus a conference is formed on communication manager between the customer the call from the MPP which is connected to the agent via CM and the call recorder via a DMCC station that was registered by AE Services to Communication Manager Once an agent is done with working on a call heshe can wrap-up the call and enter the dispositioncompletion details of the call Note that the inter-working of DMCC is out of scope of this document please refer Related Documents section This section covered in nutshell the basic concepts of POM nailing agentcustomer connections and previewprogressivepredictive dialing and wrap-up in context of agent based outbound operations

3 POM and Recorder Application Integration Design

31 Getting started This section covers the pre-requisites for any recorder application to integrate and receive call related events from POM for the purpose of call recording

311 InstallUpgrade POM First things first installupgrade to latest POM version Please refer Implementing POM and Using POM product documents available on supportavayacom

312 Configure Communication Manager and Application Enablement Services

Configure Communication Manager and Application Enablement Services as explained in reference document Application Notes to Integrate Avaya Contact Recorder 120 with Avaya Proactive Outreach Manager 30 using Avaya Aurareg Application Enablement Services 63 ndash Issue 11 available on Dev connect

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

12 Intended audience This document is developed for deployment engineers and recording application developers in order to enable them in integrating recorder application with Proactive Outreach Manager The audience of this document is expected to know

Java

XML

Proactive Outreach Manager Solution overview

Avaya Aura components like Application Enablement Service Communication Manager Session Manager and System Manager

13 Conventions used in the document The following fonts are used in this document

To represent This font is used

Document Name Document Name(ex Using POM)

Linux commands Command (ex sbinservice POM restart)

Java Code javanetSocket

Note Note

Event NamesXml Event name (ex LoginRequest)

14 Related documents Document Description

CM Admin Guide Administering Avaya Aurareg Communication Manager

SM Admin Guide Administering Avaya Aurareg Session Manager

EPMPP Admin Guide Administering Avaya Aurareg Experience Portal

AES Admin Guide Administering and Maintaining Avaya Aurareg Application Enablement Services

Guide on DMCC Avaya Aurareg Application Enablement Services

ACR Admin Guide Avaya Contact Recorder Release 151 Planning Installation and Administration Guide

POM design and product documents Using Proactive Outreach Manager

15 Providing documentation feedback Let us know what you like or do not like about this document Although we cannot respond personally to all your feedback we promise we read each response we receive Please email feedback to documentavayacom

16 Historical View POM Release Support Purpose

301 TCP based integration with Minimum version of

Avaya Contact Recorder (ACR)

POM required for POM-Recorder integration is 301

Integration supported with ACR only

Integration between POM and ACR is based on TCP protocol

304 and above TLS based integration with third party recorder

Enhanced to support TLS based integration with third party recorder

Supports backward compatibility for TCP based integration with ACR

2 Architecture Overview This section describes the solution architecture of POM highlighting the adjunct products required for POM It also covers the basic concepts of POM used in the context of call recording functionality There are two deployment scenarios one with Avaya Contact Center Elite (CCElite) and another with Avaya Aura Contact Center (AACC) Following diagram gives the architectural view of POM with CCElite and ACR as the call recorder highlighting the adjuncts required for POM to function

Figure 1 Solution architecture view of POM with CC-Elite

Below diagram gives the architectural view of POM with AACC and ACR as the recorder highlighting the adjuncts required for POM to function

Figure 2 Solution architecture view of POM with AACC

As depicted in the above 2 diagrams POM is deployed as a managed application on Experience Portal as the platform As for the adjuncts POM needs Media Processing Platform (MPP) Session Manager (SM) Communication Manager (CM) Application Enablement Service (AES) products to provide an outbound dialer solution along with recording As shown above POM leverages the platform features and web services to perform the outbound operations For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP which in turn sends SIP invite to SM all the way to CM Also POM fetches the agent login and skill details using the AES SMS web service POM interacts with CMS via socket and uses rt_socket package to receive the skill feeds of the agents whose skills are configured and monitored in POM for blending operation POM interacts with ACR (sample recording application in the above diagram) over socket connection to send any recording events and ACR uses Device Media Call Control (DMCC) service of AES to trigger the call recording ACR receives the media stream from the media gateway (be it the Avaya Media server (AMS) or a G series gateway) registered with the CM For details please refer to material listed in Reference Material section for administration and provisioning documentation for these products For ease of understanding an agent based outbound call flow - explaining basic POM concepts in context of recording is explained below In order to work on any agent based outbound call POM first registers the agent also referred to as lsquonail the agentrsquo The agent nailing flow is depicted below

Figure 3 POM nailing request ndash call flow

The POM Nailer application is a CCXML application shipped as one of the POM suite of applications using for running outbound call campaigns Nailer is responsible for placing the call to an agent prior to running an agent based campaign Nailing refers to keeping an agent connection alive during multiple outbound calls during the outbound calling campaign The call is initiated using a SIP INVITE sent by MPP to CM which results in RTP established between the MPP and the CM (or more specifically the gateway registered with CM) Once the agent is nailed to call from POM POM utilizes this agent for working on customer calls There are 3 types of agent based calls in POM namely preview predictive and progressive In preview the agent is first connected by POM and then the customer information is provided to the agent by POM and agent chooses to dial the customer Whereas in progressive and predictive the customer is first connecteddialed by POM and once connected POM identifies the best suitable agent to talk to the customer using skills based routing Call flows explaining the customer call connect and patching the agent with the customer is depicted below

Figure 4 POM dialing customer ndash call flow

POM requests the platform to send INVITE to the customer and create the customerrsquos call leg Now the customer and the agent leg are connected as a conference on the MPP hosting the agent POM uses INVITE with REPLACE to achieve this

Figure 5 POM agent talking to customer ndash call flow

Every call between the customer and a nailed agent is a conference on the MPP POMrsquos nailer app requests EP to initiate an INVITE wt REPLACE as soon as it finds best agent to work on the customer call Thus conceptually recording a call is adding the recorder application as one of the participants to the conference created between a customer and a nailed agent however the physical implementation of this is not via a conference on the MPP but rather using the DMCC protocol available on CM Thus a conference is formed on communication manager between the customer the call from the MPP which is connected to the agent via CM and the call recorder via a DMCC station that was registered by AE Services to Communication Manager Once an agent is done with working on a call heshe can wrap-up the call and enter the dispositioncompletion details of the call Note that the inter-working of DMCC is out of scope of this document please refer Related Documents section This section covered in nutshell the basic concepts of POM nailing agentcustomer connections and previewprogressivepredictive dialing and wrap-up in context of agent based outbound operations

3 POM and Recorder Application Integration Design

31 Getting started This section covers the pre-requisites for any recorder application to integrate and receive call related events from POM for the purpose of call recording

311 InstallUpgrade POM First things first installupgrade to latest POM version Please refer Implementing POM and Using POM product documents available on supportavayacom

312 Configure Communication Manager and Application Enablement Services

Configure Communication Manager and Application Enablement Services as explained in reference document Application Notes to Integrate Avaya Contact Recorder 120 with Avaya Proactive Outreach Manager 30 using Avaya Aurareg Application Enablement Services 63 ndash Issue 11 available on Dev connect

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

Avaya Contact Recorder (ACR)

POM required for POM-Recorder integration is 301

Integration supported with ACR only

Integration between POM and ACR is based on TCP protocol

304 and above TLS based integration with third party recorder

Enhanced to support TLS based integration with third party recorder

Supports backward compatibility for TCP based integration with ACR

2 Architecture Overview This section describes the solution architecture of POM highlighting the adjunct products required for POM It also covers the basic concepts of POM used in the context of call recording functionality There are two deployment scenarios one with Avaya Contact Center Elite (CCElite) and another with Avaya Aura Contact Center (AACC) Following diagram gives the architectural view of POM with CCElite and ACR as the call recorder highlighting the adjuncts required for POM to function

Figure 1 Solution architecture view of POM with CC-Elite

Below diagram gives the architectural view of POM with AACC and ACR as the recorder highlighting the adjuncts required for POM to function

Figure 2 Solution architecture view of POM with AACC

As depicted in the above 2 diagrams POM is deployed as a managed application on Experience Portal as the platform As for the adjuncts POM needs Media Processing Platform (MPP) Session Manager (SM) Communication Manager (CM) Application Enablement Service (AES) products to provide an outbound dialer solution along with recording As shown above POM leverages the platform features and web services to perform the outbound operations For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP which in turn sends SIP invite to SM all the way to CM Also POM fetches the agent login and skill details using the AES SMS web service POM interacts with CMS via socket and uses rt_socket package to receive the skill feeds of the agents whose skills are configured and monitored in POM for blending operation POM interacts with ACR (sample recording application in the above diagram) over socket connection to send any recording events and ACR uses Device Media Call Control (DMCC) service of AES to trigger the call recording ACR receives the media stream from the media gateway (be it the Avaya Media server (AMS) or a G series gateway) registered with the CM For details please refer to material listed in Reference Material section for administration and provisioning documentation for these products For ease of understanding an agent based outbound call flow - explaining basic POM concepts in context of recording is explained below In order to work on any agent based outbound call POM first registers the agent also referred to as lsquonail the agentrsquo The agent nailing flow is depicted below

Figure 3 POM nailing request ndash call flow

The POM Nailer application is a CCXML application shipped as one of the POM suite of applications using for running outbound call campaigns Nailer is responsible for placing the call to an agent prior to running an agent based campaign Nailing refers to keeping an agent connection alive during multiple outbound calls during the outbound calling campaign The call is initiated using a SIP INVITE sent by MPP to CM which results in RTP established between the MPP and the CM (or more specifically the gateway registered with CM) Once the agent is nailed to call from POM POM utilizes this agent for working on customer calls There are 3 types of agent based calls in POM namely preview predictive and progressive In preview the agent is first connected by POM and then the customer information is provided to the agent by POM and agent chooses to dial the customer Whereas in progressive and predictive the customer is first connecteddialed by POM and once connected POM identifies the best suitable agent to talk to the customer using skills based routing Call flows explaining the customer call connect and patching the agent with the customer is depicted below

Figure 4 POM dialing customer ndash call flow

POM requests the platform to send INVITE to the customer and create the customerrsquos call leg Now the customer and the agent leg are connected as a conference on the MPP hosting the agent POM uses INVITE with REPLACE to achieve this

Figure 5 POM agent talking to customer ndash call flow

Every call between the customer and a nailed agent is a conference on the MPP POMrsquos nailer app requests EP to initiate an INVITE wt REPLACE as soon as it finds best agent to work on the customer call Thus conceptually recording a call is adding the recorder application as one of the participants to the conference created between a customer and a nailed agent however the physical implementation of this is not via a conference on the MPP but rather using the DMCC protocol available on CM Thus a conference is formed on communication manager between the customer the call from the MPP which is connected to the agent via CM and the call recorder via a DMCC station that was registered by AE Services to Communication Manager Once an agent is done with working on a call heshe can wrap-up the call and enter the dispositioncompletion details of the call Note that the inter-working of DMCC is out of scope of this document please refer Related Documents section This section covered in nutshell the basic concepts of POM nailing agentcustomer connections and previewprogressivepredictive dialing and wrap-up in context of agent based outbound operations

3 POM and Recorder Application Integration Design

31 Getting started This section covers the pre-requisites for any recorder application to integrate and receive call related events from POM for the purpose of call recording

311 InstallUpgrade POM First things first installupgrade to latest POM version Please refer Implementing POM and Using POM product documents available on supportavayacom

312 Configure Communication Manager and Application Enablement Services

Configure Communication Manager and Application Enablement Services as explained in reference document Application Notes to Integrate Avaya Contact Recorder 120 with Avaya Proactive Outreach Manager 30 using Avaya Aurareg Application Enablement Services 63 ndash Issue 11 available on Dev connect

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

Below diagram gives the architectural view of POM with AACC and ACR as the recorder highlighting the adjuncts required for POM to function

Figure 2 Solution architecture view of POM with AACC

As depicted in the above 2 diagrams POM is deployed as a managed application on Experience Portal as the platform As for the adjuncts POM needs Media Processing Platform (MPP) Session Manager (SM) Communication Manager (CM) Application Enablement Service (AES) products to provide an outbound dialer solution along with recording As shown above POM leverages the platform features and web services to perform the outbound operations For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP which in turn sends SIP invite to SM all the way to CM Also POM fetches the agent login and skill details using the AES SMS web service POM interacts with CMS via socket and uses rt_socket package to receive the skill feeds of the agents whose skills are configured and monitored in POM for blending operation POM interacts with ACR (sample recording application in the above diagram) over socket connection to send any recording events and ACR uses Device Media Call Control (DMCC) service of AES to trigger the call recording ACR receives the media stream from the media gateway (be it the Avaya Media server (AMS) or a G series gateway) registered with the CM For details please refer to material listed in Reference Material section for administration and provisioning documentation for these products For ease of understanding an agent based outbound call flow - explaining basic POM concepts in context of recording is explained below In order to work on any agent based outbound call POM first registers the agent also referred to as lsquonail the agentrsquo The agent nailing flow is depicted below

Figure 3 POM nailing request ndash call flow

The POM Nailer application is a CCXML application shipped as one of the POM suite of applications using for running outbound call campaigns Nailer is responsible for placing the call to an agent prior to running an agent based campaign Nailing refers to keeping an agent connection alive during multiple outbound calls during the outbound calling campaign The call is initiated using a SIP INVITE sent by MPP to CM which results in RTP established between the MPP and the CM (or more specifically the gateway registered with CM) Once the agent is nailed to call from POM POM utilizes this agent for working on customer calls There are 3 types of agent based calls in POM namely preview predictive and progressive In preview the agent is first connected by POM and then the customer information is provided to the agent by POM and agent chooses to dial the customer Whereas in progressive and predictive the customer is first connecteddialed by POM and once connected POM identifies the best suitable agent to talk to the customer using skills based routing Call flows explaining the customer call connect and patching the agent with the customer is depicted below

Figure 4 POM dialing customer ndash call flow

POM requests the platform to send INVITE to the customer and create the customerrsquos call leg Now the customer and the agent leg are connected as a conference on the MPP hosting the agent POM uses INVITE with REPLACE to achieve this

Figure 5 POM agent talking to customer ndash call flow

Every call between the customer and a nailed agent is a conference on the MPP POMrsquos nailer app requests EP to initiate an INVITE wt REPLACE as soon as it finds best agent to work on the customer call Thus conceptually recording a call is adding the recorder application as one of the participants to the conference created between a customer and a nailed agent however the physical implementation of this is not via a conference on the MPP but rather using the DMCC protocol available on CM Thus a conference is formed on communication manager between the customer the call from the MPP which is connected to the agent via CM and the call recorder via a DMCC station that was registered by AE Services to Communication Manager Once an agent is done with working on a call heshe can wrap-up the call and enter the dispositioncompletion details of the call Note that the inter-working of DMCC is out of scope of this document please refer Related Documents section This section covered in nutshell the basic concepts of POM nailing agentcustomer connections and previewprogressivepredictive dialing and wrap-up in context of agent based outbound operations

3 POM and Recorder Application Integration Design

31 Getting started This section covers the pre-requisites for any recorder application to integrate and receive call related events from POM for the purpose of call recording

311 InstallUpgrade POM First things first installupgrade to latest POM version Please refer Implementing POM and Using POM product documents available on supportavayacom

312 Configure Communication Manager and Application Enablement Services

Configure Communication Manager and Application Enablement Services as explained in reference document Application Notes to Integrate Avaya Contact Recorder 120 with Avaya Proactive Outreach Manager 30 using Avaya Aurareg Application Enablement Services 63 ndash Issue 11 available on Dev connect

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

Figure 3 POM nailing request ndash call flow

The POM Nailer application is a CCXML application shipped as one of the POM suite of applications using for running outbound call campaigns Nailer is responsible for placing the call to an agent prior to running an agent based campaign Nailing refers to keeping an agent connection alive during multiple outbound calls during the outbound calling campaign The call is initiated using a SIP INVITE sent by MPP to CM which results in RTP established between the MPP and the CM (or more specifically the gateway registered with CM) Once the agent is nailed to call from POM POM utilizes this agent for working on customer calls There are 3 types of agent based calls in POM namely preview predictive and progressive In preview the agent is first connected by POM and then the customer information is provided to the agent by POM and agent chooses to dial the customer Whereas in progressive and predictive the customer is first connecteddialed by POM and once connected POM identifies the best suitable agent to talk to the customer using skills based routing Call flows explaining the customer call connect and patching the agent with the customer is depicted below

Figure 4 POM dialing customer ndash call flow

POM requests the platform to send INVITE to the customer and create the customerrsquos call leg Now the customer and the agent leg are connected as a conference on the MPP hosting the agent POM uses INVITE with REPLACE to achieve this

Figure 5 POM agent talking to customer ndash call flow

Every call between the customer and a nailed agent is a conference on the MPP POMrsquos nailer app requests EP to initiate an INVITE wt REPLACE as soon as it finds best agent to work on the customer call Thus conceptually recording a call is adding the recorder application as one of the participants to the conference created between a customer and a nailed agent however the physical implementation of this is not via a conference on the MPP but rather using the DMCC protocol available on CM Thus a conference is formed on communication manager between the customer the call from the MPP which is connected to the agent via CM and the call recorder via a DMCC station that was registered by AE Services to Communication Manager Once an agent is done with working on a call heshe can wrap-up the call and enter the dispositioncompletion details of the call Note that the inter-working of DMCC is out of scope of this document please refer Related Documents section This section covered in nutshell the basic concepts of POM nailing agentcustomer connections and previewprogressivepredictive dialing and wrap-up in context of agent based outbound operations

3 POM and Recorder Application Integration Design

31 Getting started This section covers the pre-requisites for any recorder application to integrate and receive call related events from POM for the purpose of call recording

311 InstallUpgrade POM First things first installupgrade to latest POM version Please refer Implementing POM and Using POM product documents available on supportavayacom

312 Configure Communication Manager and Application Enablement Services

Configure Communication Manager and Application Enablement Services as explained in reference document Application Notes to Integrate Avaya Contact Recorder 120 with Avaya Proactive Outreach Manager 30 using Avaya Aurareg Application Enablement Services 63 ndash Issue 11 available on Dev connect

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

Figure 5 POM agent talking to customer ndash call flow

Every call between the customer and a nailed agent is a conference on the MPP POMrsquos nailer app requests EP to initiate an INVITE wt REPLACE as soon as it finds best agent to work on the customer call Thus conceptually recording a call is adding the recorder application as one of the participants to the conference created between a customer and a nailed agent however the physical implementation of this is not via a conference on the MPP but rather using the DMCC protocol available on CM Thus a conference is formed on communication manager between the customer the call from the MPP which is connected to the agent via CM and the call recorder via a DMCC station that was registered by AE Services to Communication Manager Once an agent is done with working on a call heshe can wrap-up the call and enter the dispositioncompletion details of the call Note that the inter-working of DMCC is out of scope of this document please refer Related Documents section This section covered in nutshell the basic concepts of POM nailing agentcustomer connections and previewprogressivepredictive dialing and wrap-up in context of agent based outbound operations

3 POM and Recorder Application Integration Design

31 Getting started This section covers the pre-requisites for any recorder application to integrate and receive call related events from POM for the purpose of call recording

311 InstallUpgrade POM First things first installupgrade to latest POM version Please refer Implementing POM and Using POM product documents available on supportavayacom

312 Configure Communication Manager and Application Enablement Services

Configure Communication Manager and Application Enablement Services as explained in reference document Application Notes to Integrate Avaya Contact Recorder 120 with Avaya Proactive Outreach Manager 30 using Avaya Aurareg Application Enablement Services 63 ndash Issue 11 available on Dev connect

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

313 Configure POM Configure Proactive Outreach Manager as shown below

3131 Enable recorder integration Step 1 On the POM Web Page ndash Go to POM Home Configurations menu Global Configurations sub menu as shown below

Figure 6 Global configuration

Step 2 On global configurations page go to Recorder section and select enable recorder as shown below

Figure 7 Enable recorder

Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection as shown above Please refer Using POM guide section Manage global configuration page field descriptions for more details on enabling recorder

3132 Enable UCID generation For any telephony operations initiated by POM EP launches the telephony apps driver and nailer ccxml via MPP Refer Architecture Overview chapter for more details The configuration explained below is required for POM applications to provide the Universal Call Identifier (UCID) in the form of metadata recording APIs Step 1 On Experience Portalrsquos web page https[IP of Experience Portal]VoicePortal go to System Configuration Applications Nailer as shown below

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

Figure 8 Edit NailerDriver application

Step 2 Edit both Nailer and Driver application Go to Advanced parameters set the Generate UCID to Yes

Figure 9 Generate UCID settings

The Universal Call Identifier (UCID) is a call identifier used to help correlate call records between different systems If the Avaya Communication Manager (CM) passes a UCID to Experience Portal Experience Portal always uses that UCID regardless of the setting in this field If however CM does not pass a UCID the Experience Portal MPP server can generate one for the call

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

Please refer to the Experience Portal online help and administration guide for more details on UCID for inbound and outbound calls Upon successful configuration restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service

32 Connecting POM and Recorder Application

321 POM deployment with recorder This section covers the deployment details of POM with any recorder application

Figure 10 Single POM and recorder application deployment view

The above figure depicts holistic view of the solution in deployment with connection between single POM server and recorder Agents once logged in to CM are required to login to POM via desktop in order to perform any outreach operations via POM POM provides the details of agent operations in the form of XML based recording events to the recorder application Details of connecting with POM are covered in subsequent sections Note POM provides recording events to the recorder application only upon a successful connect and detection of live voicevoice energy (answer human detection) between agent and the customer Note As depicted in the figure 10 above POM does not perform the streaming of media rather it provides agent events in the form of XML messages over a TCPTLS based socket connection

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

For multi POM server deployment integration with recorder it is required that the recorder shall establish connection with each individual POM server upfront such that events are being sent from all servers as per the recorder configuration Figure 11 below depicts the POM multi-server deployment with recorder

Figure 11 Multiple POM and recorder application deployment view

322 TCP based connection Below diagram describes the sequence of steps required to establish connection between POM and recorder application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

Figure 12 Connection sequence between POM and recorder application

The Recorder application must connect with POM over a TCP socket connection To facilitate recording application connections POM opens a ServerSocket on the configured port (default port

is 7999) and waits for connection requests from recording applications to arrive Once a request has been received a TCP based socket connection is established between the POM server and the recording application Upon successful socket creation the recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity

library followed by a sending a LoginResponse Details of login request and response message format are available in POM Recording Events chapter All the recording events between POM and the recording application flow over this socket connection in the form of XML messages Please refer the Getting started chapter for pre-requisites to connect POM and Recorder application Please refer the Sample Client chapter for details on sample client to connect with recorder Note It is required that the recorder establish a connection with each individual POM server in a multi POM server deployment

323 TLS based secured connection TLS based connection can be used for a secured connection between POM and recording application In order to enable this type of connection

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

Step 1 Login to Experience portal web page https[IP of Experience Portal]VoicePortal Configure Enable Secured Connection on POM Home Global Configurations page as shown below

Figure 13 Enable secured connection with recorder

Step 2 Export the POM server certificate (see below) Please refer Using POM guide section Enabling secured connection with Recorder for more details The handshake between the POM server and recording application is one way handshake and POM utilizes the server certificate for this handshake POM does not accept any certificate from the recording application for this handshake The POM server certificate can be exported from POM Home Configurations POM Servers page as shown below

Figure 14 POM certificate export option

Update the trust store of the recording client with the exported certificate for establishing a secure connection between POM and recorder application In case of multiple server deployment of recording application all deployed application instances should contain the exported certificate in their respective trusted store Similarly in case of multiple POM server deployment the server certificate of every POM server shall be copied to the trust store of every recording application Step 3 Restart POM services Upon successful configuration and certificate export restart POM service Go to POM Home Configurations POM Servers POM Manager Select the server and stop start the service Step 4 Socket connection

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

On a successful handshake a socket connection is established on configured port [7998 default port] The recording application should send login request to the POM server with required metadata in the form of LoginRequest XML message POM in response authenticates and authorizes the recording application using the Experience Portalrsquos EPSecurity library followed by a

LoginResponse event Note It is required that the recorder establish connection with each individual POM server in a multi POM server deployment Note WFO-ACR 151 or lower does not support TLS based secured connection Hence for supporting backward compatibility POM 304 leaves the option with the user to enable secured connection

324 Verify connection between POM and Recorder To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7999 command

Verify ESTABLISHED status on the configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example output for port 7999 is shown below

Figure 15 Successful TCP connection established between POM and Recorder

To verify a TLS connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command with configured port netstat ndashna | grep 7998 command

Verify ESTABLISHED status on configured port with the configured POM IP address Note that the line that has ESTABLISHED at the rightmost end shows a connection between POM at 14814717389 on port 7999 and a recording application (client) at 148147173172 on port 51633 Example for 7998 shown below

Figure 16 Successful TLS connection established between POM and Recorder

If the connection is established successfully and if the recording application has sent the

LoginRequest event to POM the recorder as a verification step should receive the LoginResponse event To troubleshoot please visit Experience Portal web page System Maintenance Log Viewer Select category lsquoPOM Agent Managerrsquo and check for any Errors in the log report In case of TLS handshake failure POM raises alarm P_POMAGT56 to notify the administrator of the failure event Please visit Experience Portal web page System Maintenance Alarm Manager and check for P_POMAGT56 alarm in the alarm report There is no upper limit defined to the number of recorder client connections to the POM server

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

325 Link failure and recovery Link failure between POM and Recorder application might occur due to many reasons for example

POM service unavailabilityfailure

Recorder application failure

Network failure In case of POM service failure or shutdown any connection request from a recorder application will be rejected and the recorder application would receive javanetConnectException Connection refused

exception The recorder application in such scenario is expected to continue to send connection requests on the configured ports periodically Upon successful restart of the POM service any new requests from the recorder application would be accepted The recording application should follow up establishment of a connection by sending a login request In case of recorder application failure the established socket connection with POM would break POM will continue to listen on the configured port and upon receipt of any new connection requests it will accept the request and proceed with the required authentication process POM being the server the recorder application or client is expected to re-initiate the connection on configured port upon recovery from the failure In case of network failure the recorder would be informed about the socket failure only upon sending any new information over the socket by the TCP stack at the recorder POM will continue to listen on the configured port upon network availability and upon receipt of any new connection requests it will accept the same and proceed with the required authentication process The recorder application or client is expected to attempt to re-establish the connection on the configured port on a periodic interval in case of network failure Please refer Troubleshooting chapter for more details on POM service failure

33 Recording per Zone POM leverages on the Experience Portalrsquos concept of Zones enabling users to make optimum usage of resources deployed and create segmentation of administration for different organizations in the datacenter Note POM as of current design supports single datacenter deployment design All figures in this chapter depict single datacenter deployment The figure 17 below depicts solution view with zonal deployment of POM

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

Figure 17 Multiple POM zonal deployment with recorder

As shown above primary EP with POM is deployed in Zone A along with Auxiliary EP with POM in Zone B As per POM design an Agent Manager service (referred as PAM) can manage multiple zones as configured by the user The PAM service manages those agents who are logged in to the zone managed by the service and provides recording events to the connected recording client Hence as depicted above the recording application is connected to both primary and auxiliary POM in order to receive events for agent operations performed in both zones A and B via the PAM service running in both POM servers For more details on primary and auxiliary EP deployment please refer Proactive Outreach Manager Implementation guide available on support site For more details on POM zone configuration please refer Using Proactive Outreach Manager guide available on support site In order for the recording application to receive events for a particular zone it must send the required zone(s) information in the LoginRequest xml message A snippet of LoginRequest is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

Figure 18 All zone configuration Please note the zone element of the xml message above A recording application can provide either lsquoAllrsquo zones or the lsquocomma separatedrsquo zones When lsquoAllrsquo zones is sent in the login request to POM POM ensures to send agent operations of all the zone(s) managed by the PAM service running on the POM server to which the recording application is connected For example if POM server to which the recorder is connected is managing Zone A recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoAllrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application Another example for comma separated zones for Zone A and B is shown below

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtABltzonegt ltLoginRequestgt

Figure 19 Comma separated zone configuration When lsquoABrsquo zones is sent in the login request to POM POM ensures to send recording events of only those zones which are managed by the PAM service and also configured in the login request message For example if POM server to which the recorder is connected is managing Zone A and the login request contains lsquoABrsquo zone then recording events of operations performed by the agents logged in to Zone A will be sent to the recorder application and not for the Zone B since PAM service is managing only Zone A Whereas if POM server to which the recorder is connected is managing both Zone A and Zone B and if lsquoABrsquo zone is sent in login request then recording events of operations performed by the agents logged in to Zone A and Zone B will be sent to the recorder application since PAM service is managing both Zone A and B Below table depicts the conditions

Zone in LoginRequest Zone managed by PAM Recording event of which zone will be sent

All A A

All AB AB

A A A

B A None

AB B B

AB C None

Figure 20 Recording events for configured zones In summary as long as the zone configured in login request in managed by the PAM service the recording events of the configured zone would be sent to the recorder Note Above described multi-zone recording feature is available with POM 301 patch 8 release As described above in a multiple POM server deployment it is expected that the recording application should connect to all POM servers to ensure recording events from all POM servers managing respective zones are received by the recorder

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

Note Best practice is to establish connection with each POM server in a multiple POM server deployment and configure lsquoAllrsquo zone in LoginRequest message Details of the LoginRequest event message are available in POM Recording Events chapter

34 Failure and Recovery This section covers the POM server failure recovery and associated impact on recording events in a single POM server deployment

341 POM Server Failure In the event of POM server failure or POM Agent Manager (PAM) service failure no new connection between POM and recording application can be established In case of already established connection the connectivity between the recording application and POM server terminates Figure 21 below depicts the POM server failure

Figure 21 POM server failure

In a single POM server deployment as shown above when the POM server or connectivity to the server fails no agent operations can be performed by the agents logged in to POM In such case the agents registered with POM get lsquoPOM not availablersquo message on their desktop and are restricted from performing any operations until POM becomes available In such event no recording events are sent to the recording application Any new messages sent by recording application to POM will fail due to the broken connection

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application

Please note as of current POM design the recording application is not informed about POM health status in the form of any kind of keep-alive messages Hence it is expected that the recording application should re-initiate the connection with POM server upon connection failure for further communication When POM or PAM service recovers from failure any new connection requests by the recording application are accepted and the sequence follows as explained in chapter Connecting POM and Recording application Recording application can get the current state of all logged in agents using ListAgentsRequest command Note Upon recovery the application may use the ListAgentsRequest request to get the current state of all logged in agents In return POM sends only the current state of logged in agents on request and would not send details of all the operations or transitions happened during the down time of POM server or PAM service Multi server POM deployment and failover is covered in chapter High Availability

342 Recorder application failure In the event of recording application failure none of the POM agent operations get impacted whereas the connection between POM and recording application breaks Thus the recording application canrsquot receive any recording events unless the application recovers from failure and re-establishes the connection to POM and re-initializes Figure 22 below depicts the recording application failure

Figure 22 Recorder application failure

Once the recording application recovers from failure it should re-initiate the connection such that POM server accepts the connection the application logs in and POM begins sending recording events Note Upon recovery of recording application POM sends recording events for ongoing agent operations over a newly established connection POM will not send details of all the operations or transitions during the down time of the recording application

35 High Availability This section covers the POM server failure recovery and associated impact on recording events in multiple POM server deployment

351 POM server failover The figure 23 below depicts multiple POM server deployment with zones Zone A consists of Primary and Auxiliary POM deployed on EP The agent POM manager service (PAM) running on Primary POM server manages zone A and is active Whereas the PAM service in Auxiliary POM of Zone A is dormant Another Auxiliary POM is deployed in Zone B and the PAM service running on this POM is active managing Zone B

Figure 23 Primary and Aux POM servers connected with recorder

Note As per POM design a PAM service can manage multiple zones where as one zone cannot be managed by multiple PAM services

In the event of POM server or PAM service failure in either Zone A or B the dormant server deployed in Zone A will take over the operations being performed by the failed service automatically The figure 24 below depicts the failover of POM server

Figure 24 Failover of POM server managing zone

In the event of POM server or PAM service failure the agents logged in to zone A which are served by the failed POM server receive lsquoPOM Not Availablersquo message on the Agent desktop and are not allowed to perform any operation from desktop The dormant server takes ownership of the zone(s) being managed by the failed server such that the campaign and agent operations served by the failed server resume from the last failure point Once the dormant server becomes operational it sends lsquoPOM Availablersquo message to the agents on the desktop such that the agents are allowed to perform respective operations This is an automated failover and no manual intervention is required during this event A dormant server is not associated with any zone and can take over the operations of failed PAM service responsible for any zone Thus the above behavior would remain the same as explained above when the POM server or PAM service of Zone B fails instead of POM server of Zone A High availability design for PAM supports node to node failover If multiple nodesservers fail then for high availability of all nodes an equivalent number of dormant servers are required For more details on high availability and system behavior please refer POMrsquos product documentation

During failure the connection established between POM server and the recording application breaks Any new messages sent by recording application to POM will fail due to broken connection As shown in the figure 24 above it is expected that the recording application establishes connection with all the POM servers deployed in a multiple POM server deployment When the dormant server or PAM service becomes operational it starts sending the recording events of agents managed by the operational PAM service As explained above during the failover agents receive lsquoPOM Not Availablersquo message and canrsquot perform any desktop operations unless the lsquoPOM Availablersquo message is received Thus the recording application receives all the recording events related to actions performed by the agent post receipt of lsquoPOM Availablersquo message on the desktop via the connection established with the dormant server Note As a best practice the recording application should be designed such that recording events for the requested zone can be received via connection established with any POM server in a multi POM server deployment It is also suggested to configure lsquoAllrsquo zones instead of comma separated zones in LoginRequest message unless particular recording application instance does not want to receive recording events of specific zone

352 Zone failover In the event of zone failure as shown in figure 25 below all the components residing in the zone become unavailable In such scenario the connectivity of recording application with all POM servers supporting agents in the failed zone terminates As shown below the recording application is connected with all POM servers such that in the event of zone A failure the connection between POM deployed in zone B and recording application remains intact

Figure 25 Zone failover

In order to ensure the operations performed by the failed zone are continued from other zone manual intervention is required to mark the failed zone down such that the configured failover zone claims ownership of the campaigns and agent operations being performed from the failed zone For more details on zone failover and system behavior please refer POM product documentation In the event of zone failure the agents served by the failed zone canrsquot perform any operations from the desktop The agents of failed zone need to manually re-login to zone B as shown above such that PAM of zone B can provide the recording events of agent operations to the recording application over the existing connection For example if zone fails during an ongoing call the ongoing call will get terminated and the recording application will stop receiving events from PAM in the failed zone The recording application shall monitor for socket connection termination Again as a best practice recording application should establish connection with every POM recorder in a multi POM server deployment such that in the event of failure recording events will flow via the intact connection for un-affected zone

36 Licensing This API does not consume a license and is an entitlement associated with a valid POM license The recording API is packaged as part of POM libraries and its version is same as the POM release version For more details on POM licensing please refer product Overview and Specification document chapter Licensing requirements and product offer document

License needs for recording application is out of the scope of this document

4 POM Recording Events

41 Recorder login and listing agents For a recorder application to receive events the recording application must 1

st establish a

connection with POM server followed by sending a request for login and upon a successful login response from POM the recording application can request for list of registered agents with details The below figure depicts the sequence elaborated above

Figure 26 Sequence to receive events with registered agent details

As shown above POM opens a server socket connection and listens for any new connection from the recording client Once a socket connection is established between POM and the

recording application recorder should send login request using event LoginRequest The recording application can get the registered agent details from POM by sending a LoginRequest and including the pumpup attribute value set to true in the LoginRequest event The

registered agents are the agents logged-in to POM When a LoginRequest is received and PumpUp set to true POM server sends LoginResponse followed by the ListAgentsResponse event containing

registered agent details Details of LoginRequest event are listed in a subsequent section The below diagram depicts the sequence where recording application connects with the POM server gets successfully logged in followed by a request for fetching registered agents with respective states as a new request

Figure 27 Sequence to receive events and request for registered agent details

In order to obtain the list of registered agents either a login request with pumpup attribute value set to true or a listagentsrequest shall be sent by the recording application to POM

Note In the event of the recorder applicationrsquos loginRequest failing POM sends LoginResponse with failure reason and closes the established socket connection Details of LoginResponse are listed in LoginResponse sections

Please note all event XML messages are prefixed with nnnnnn which represents length of the XML message as 6 digit byte array in the form of string The recording application can confirm the receipt of data sent by POM over the socket connection by comparing the size of data received

over socket with the value of nnnnnn

411 LoginRequest Event

Event Name ndash LoginRequest Purpose ndash Purpose of this event is to authenticate and authorize recorder application in

order to start receiving recording events

Pre-requisite ndash Successfully established socket connection

Definition ndash The message details are shown below

Attribute Type Description

user String User name ltPOM web-administrator login namegt

password String Password ltPOM web-administrator passwordgt

zone String Optional If successfully logged in receive events of agent operations performed by this zone Valid values lsquocomma separated zone namesrsquo lsquoAllrsquo Default value lsquoAllrsquo

pumpup String Accepts value lsquotruersquo or lsquofalsersquo

When set to lsquotruersquo POM sends ListAgentsResponse followed by the LoginResponse to the recording application upon successful login

When set to false POM only sends the LoginResponse and in order to receive details of registered agents the recording application must

use ListAgentsReqest event

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginRequest pumpup=truegt

ltusergtadminltusergt ltpasswordgtadmin123ltpasswordgt

ltzonegtAllltzonegt ltLoginRequestgt

Figure 28 LoginRequest XML message

412 LoginResponse Event

Event Name ndash LoginResponse

Purpose ndash Purpose of this event is to respond to a login request sent by a recording application

Pre-requisite ndash Successfully established socket connection and recorder application has

sent LoginRequest to POM server

Definition ndash The message details are shown below

Attribute Type Description

reasonCode Integer Reason code returned from LoginRequest reasonCode reasonText

0 Login Successful

1 Invalid user name or password

2 Invalid zone

3 General error

reasonText String Reason description returned from LoginRequest success String Set to lsquotruersquo when reasonCode is lsquo0rsquo else set to lsquofalsersquo

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltLoginResponse success=true reasonCode=0gt

ltreasonTextgtLogin SuccessfulltreasonTextgt ltLoginResponsegt

Figure 29 LoginResponse XML message

413 ListAgentsRequest Event

Event Name ndash ListAgentsRequest Purpose ndash Purpose of this event is to get a list of all agents registered and managed by

zone(s) specified in the loginRequest message associated with the socket connection over which the message is received

Pre-requisite ndash Successfully established socket connection and successfully logged in to POM server

Definition ndash The message details are shown below Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsRequestgt

Figure 30 ListAgentsRequest XML message

414 ListAgentsResponse Event

Event Name ndash ListAgentsResponse

Purpose ndash Purpose of this event is to provide a list of all agents registered and managed by zone(s) active on the POM server with which the socket connection has been

established POM sends this response upon receipt of ListAgentsRequest event and upon receipt of LoginRequest with pumpup attribute value set to true

Pre-requisite ndash Successfully established socket connection successfully logged in to

POM server and either pumpup attribute value set to true in LoginRequest message OR POM has received a ListAgentsRequest event from recording application

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID as provisioned on Communication Manager and agent desktop (Maximum 80 characters)

agentExtn String Extension used by the agent to login from (Maximum 80 characters)

State String Current state of the agent Valid values

Ready When the agent is nailed and ready on desktop

Active When the agent is nailed and busytalkingin consultin conference

Hold When the agent puts customer call on hold

Xml Message

nnnnnnltxml version=10 encoding=UTF-8gt ltListAgentsResponsegt

ltagentsgt ltagent agentID=1234 agentExtn=3456 state=activegt

ltagent agentID=2134 agentExtn=3432 state=holdgt ltagent agentID=5324 agentExtn=2334 state=readygt ltagentsgt

ltListAgentsResponsegt

Figure 31 ListAgentsResponse XML message

415 Logout There is no API for logout request from the recording application post a successful login The socket connection between POM and Recording client is terminated when the socket connection is closed There is no separate API message to disconnect the session If an agent logs out of POM recording applications monitoring the zone that the agent was logged into are notified through the AgentRelease event

42 Agent states and associated recording events As explained in the Architecture Overview chapter an agent is nailed upon the need for an agent for an agent based campaign Once nailing is successful the agent is attached to particular campaignjob and based on the dialing mode (previewpredictiveprogressive) the agent moves between various call states like preview dialing talking and wrap-up Note As mentioned earlier in this document only those events which occur post successful connect and answer human detection between the agent and customer are sent to the recorder Other events like dialing wrap-up played notification and any others are not currently available in the current POM design For more details on agents states please refer POM Overview and Specification document Table below details the agent operations and associated recording event sent by POM server

Agent Operation Recording Event

Nailing an agent AgentAcquireEvent

Releasing nailed agent AgentReleaseEvent

Media established with participant on call MediaInfoEvent

Media complete with participant on call MediaCompleteEvent

421 AgentAcquire Event

Event Name ndash AgentAcquireEvent Purpose ndash Purpose of this event is to notify the recording application when agent is

nailed by POM

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentname String Name of the agent

agentExtn String Extension of the agent

Meta data as name value pairs (optional)

String Meta data

jobid=123

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3425 agentname=name agentExtn=sip3425pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

Figure 32 AgentAcquireEvent XML message

422 AgentRelease Event

Event Name ndash AgentReleaseEvent

Purpose ndash Purpose of this event is to notify the recording application when agent is released from POM Agent can get released due to various reasons like campaignjob the agent was working on has been completed or agent logs off from desktop upon setting not ready state Please refer POM Agent API document for more details on various agent states and transitions

Pre-requisite ndash Successfully established socket connection successful login recording application is monitoring the zone that the agent is logged into

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

agentname String Name of the agent

XML Message

nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3425 agentExtn=sip3425pomcom agentname=namegt ltAgentReleaseEventgt

Figure 33 AgentReleaseEvent XML message

423 MediaInfo Event

Event Name ndash MediaInfoEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

is established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone ie when agent is in talking state With every participant added to the established RTP or telephony leg a new MediaInfoEvent message is sent to the recording application For details on how POM connects between agent and customer please refer chapter Architecture Overview Various scenarios with MediaInfoEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login and agent is acquirednailed

Definition ndash The message details are shown below

Attribute Type Description

agentID String Agent ID

agentExtn String Extension of the agent

workitem id String Workitem id value is unique per successful connect between agent and the customer it represents outbound call attempt worked upon by the agent

UCID String Unique identifier assigned by the system for a call Please refer section Enable UCID generation for details on UCID

mediaType String Type of campaign Valid values are

Progressive

Preview

Participantsparticipant element

List of participants on the media and associated state

type String Type of the participant Valid values are

agent

external

customer

id String Participant identifier (for example agent extension or customer phone numbersip identifier)

state String Current state Valid values are

active

ready

hold

viaUCID String Optional Unique identifier for media instance indicating that a new call has been created outside of the original POM call described by UCID For example when an external agent (other than the one who initiated the call with customer) is consulted or conferenced with the initial agent viaUCID is set to UCID value of external agentrsquos media leg

Meta data as name value pairs (optional)

String Meta data like

jobid = 23

zone=Default

o Zone relates to POM zone

o Default indicates use of default POM zone

o String value of the name of the zone

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3425 state=active gt ltparticipant type=customer id=sipcustomernamepomcom state=hold gt ltparticipant type=agent id=3426 state=active viaUCID=rdquo10000001321234567890rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt200ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

Figure 34 MediaInfoEvent XML message For more details on concepts of POM please refer the product document ndash Using Proactive Outreach Manager guide For more details on UCID please refer chapter lsquoUniversal Call Identifier (UCID) values included in UUI datarsquo from Experience Portal administration guide

424 MediaComplete Event

Event Name ndash MediaCompleteEvent Purpose ndash Purpose of this event is to notify the recording application when media or RTP

established between the agentrsquos phone and the customerrsquos handset or any other agentrsquos phone is dropped ie when agent comes out of talking state With every participant drop

from the established RTP or telephony leg a MediaCompleteEvent message is sent to the recording application For details on how POM connects between agent and customer

please refer chapter Architecture Overview Various scenarios with MediaCompleteEvent are covered in POM Call Scenarios chapter

Pre-requisite ndash Successfully established socket connection successful login agent is acquired and media is established with agentrsquos extension or telephony leg

Definition ndash The message details are shown below

Attribute Type Description

agentID String

Agent ID

agentExtn String

Extension of the agent agentExtn can be in one of 2 formats depending on the originating media

sip9999avayacom

9999

workitem id String

workitem id value is unique per successful connect between agent and the customer it represents outreach attempt worked upon by the agent

UCID String

Unique identifier assigned by the system for a media instance Please refer section Enable UCID generation for details on UCID

mediaType String

Type of campaign Valid values are

Progressive

Preview

XML Message

nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3425 agentExtn=sip3425pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt

Figure 35 MediaCompleteEvent XML message

5 POM Call Scenarios This chapter describes various call scenarios for agent based operations performed by agents registered with POM Call scenarios are described with the help of sequence of events and the event payload details For details on purpose and definition of recording events please refer chapter POM Recording Events

51 Scenario Agent working on call The figure 36 below depicts the sequence of events between POM and the recording application for an agent to be able to work and dispose the call followed by agent getting logged offnailed out of POM

Figure 36 Scenario Agent working on call

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=10000001321337930446 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 1 agentID 3456 UCID 8888

MediaInfo participants

participant type Agent Id 3456 state active

participant type Customer Id

821700 state active

Message 4 agentID 3456 UCID 8888 MediaComplet

e

52 Scenario Agent holds while working on call The figure 37 below depicts the sequence of events between POM and the recording application when an agent puts the customer call on hold while working on the call followed by agent getting logged offnailed out of POM

Figure 37 Scenario Agent puts customer on hold

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=hold gt ltparticipant type=customer id=821700 state=hold gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 2 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state

active

participant type

customer id

821700

state

active

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type agent id 3456

state hold

participant type

customer id

821700

state hold

Message 4 agentID 3456 UCID 8888

MediaInfo Participant participant Agent id 3456 stat activ

s type e e

participant type

Customer id

821700

state

active

Message 5 agentID 3456 UCID 8888

MediaComplete

53 Scenario Agent consulttransfer while working on call With multiple agents working on a call say in case of consult conference or transfer POM sends recording events for media initiated by each agent as a participant The recording application should be designed such that same events across agents can be identified and ignored and relevant events are recorded The recorder application can leverage the UCID and agentID value available in the message payload to identify and relate the media events per agent participating in a common call The below figure depicts sequence of recording events when agent consults another POM agent while working on a call

Figure 38 Scenario Agent consults with other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt

----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt

ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 10---------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above

Message 3 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

Customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaComplete

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent id 3456

state

active

participant type

Customer id

821700

state

active

Message 8 agentID 3456 UCID 8888

MediaComplete

Similar to consult in case of a transfer scenario the agent to whom the call is transferred remains as an active participant in the call with the customer and the 1

st agent who initiated the call drops

out

54 Scenario Agent consultconference while working on call Similar to the agent consult and transfer scenario in a conference the agent connects to the customer puts the customer on hold and consults with another agent followed by conferencing the consulted agent to the call with the customer Thus all 3 participants ie both agents and the customer are all active participants in the call The figure 39 below depicts the sequence of agent consulting and conferencing another agent when on call with customer

Figure 39 Scenario Agent conferencing other agent

The XML messages for above sequence are listed below

----------------------------------------------------------Message 1---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3456 agentname=name agentExtn=sip3456pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 2---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltAgentAcquireEvent agentID=3455 agentname=name agentExtn=sip3455pomcomgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltAgentAcquireEventgt ----------------------------------------------------------Message 3---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 4---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3455 state=ready gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 5---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=hold gt ltparticipant type=agent id=3456 state=active viaUCID=rdquo9999rdquo gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 6---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3455 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt

ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 7---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3455 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipant type=agent id=3456 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 8---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3455 agentExtn=sip3455pomcom gt ltworkItem id=1162793 UCID=9999 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 9---------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaInfoEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltparticipantsgt ltparticipant type=agent id=3456 state=active gt ltparticipant type=customer id=821700 state=active gt ltparticipantsgt ltmetagt ltparam name=jobid gt123ltparamgt ltparam name=zone gtDefaultltparamgt ltmetagt ltMediaInfoEventgt ----------------------------------------------------------Message 10-------------------------------------------------------------- nnnnnnltxml version=10 encoding=UTF-8gt ltMediaCompleteEvent agentID=3456 agentExtn=sip3456pomcom gt ltworkItem id=1162793 UCID=8888 mediaType=Preview gt ltMediaCompleteEventgt ----------------------------------------------------------Message 11-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3455 agentExtn=sip3455pomcom agentname=namegt ltAgentReleaseEventgt ----------------------------------------------------------Message 12-------------------------------------------------------------- nnnnnn ltxml version=10 encoding=UTF-8gt ltAgentReleaseEvent agentID=3456 agentExtn=sip3456pomcom agentname=namegt ltAgentReleaseEventgt

The table below highlights the payload for MediaInfo and MediaComplete event messages for the scenario described above Message 3 agentID 3456 UCID

8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 4 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3455

state

ready

Message 5 agentID 3455 UCID 8888

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state hold

participant type Agent Id 3456

state

active

viaUCID

9999

Message 6 agentID 3455 UCID 9999

MediaInfo Participants

participant type Agent Id 3455

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3456

state

active

Message 7 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

participant type Agent Id 3455

state

active

Message 8 agentID 3455 UCID 9999

MediaComplete

Message 9 agentID 3456 UCID 8888

MediaInfo Participants

participant type Agent Id 3456

state

active

participant type

customer Id

821700

state

active

Message 10 agentID 3456 UCID 8888

MediaComplete

6 Sample Client Sample client is available on the support site supportavayacom in the name of RecorderSampleClientzip THIS DEMONSTRATION SOFTWARE IS PROVIDED FOR THE SOLE PURPOSE OF DEMONSTRATING HOW TO USE THE SOFTWARE DEVELOPMENT KIT AND MAY NOT BE USED IN A LIVE OR PRODUCTION ENVIRONMENT THIS DEMONSTRATION SOFTWARE IS PROVIDED ON AN AS IS BASIS WITHOUT ANY WARRANTIES OR REPRESENTATIONS EXPRESS IMPLIED OR STATUTORY INCLUDING WITHOUT LIMITATION WARRANTIES OF QUALITY PERFORMANCE INFRINGEMENT MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE Please follow the below steps to use the sample client and integrate with POM

1 Download the RecorderSampleClientzip file from support site 2 Import the zip file as an eclipse project Go to Eclipse Files Import menu 3 Select the general options 4 Select existing project into workspace option 5 Select the lsquoSelect Archive Filersquo option 6 Click the browse option and select the archive file downloaded in step 1 7 Click Finish The lsquoPOMRecorderSampleClientrsquo project will be created in the eclipse

workspace 8 Edit the configproperties file in the workspace location

($WORKSPACE_LOCATIONconfigproperties) with the below information POM-ipaddress= Provide the IP address of POM server on which agent manager is active port=Provide the port number on which recorder server is listening port number can be set from POM UI POM Home Global Configuration username= Provide the POM username who has WFO Recording permission password= Password of above provided username zone=Provide zone name for which recording should be done you can provide the comma separated zone names or lsquoAllrsquo if you want to record all zones agents issecured= This can be set from POM UI POM Home Global Configuration possible values could be lsquosecuredrsquo if Enable Secured Connection checkbox is checked on POM Global Configuration page else lsquononersquo certificate_path=CPathToPOMKeyStore this is required only in case of secured connection storepassword=Password for POM keystore this is required only in case of secured connection

9 Open the POMRecorderSampleClientjava or select it from Package Explorer right click on it and select Run As Java Application alternatively click on Run menu and select Run As Java Application

10 Check the Eclipse console if connection is being established and required events are received

7 Limitations As of current POM design

API for Start and Stop recording is not available

API for screen recording for example events prior a successful connect and wrap-up is not available

Keep-alive status between POM and recording application is not available in the design

Appendix A ndash Glossary

Term Description

POM Proactive Outreach Manager

AACC Avaya Aura Contact Center

CC-Elite Contact Center Elite

AAEP Avaya Aura Experience Portal

ACR Avaya Call Recorder

AES Avaya Enablement Service

API Applications Programming Interface

ASM Avaya Session Manager

CM Communications Manager (Avaya Aura Communications Manager)

CMS Call Management System (Avaya)

EPM Experience Portal Manager

MPP Media Processing Platform

OCWS Outbound Call Web Service

PRD Product Requirements Document

SDK Software Development Kit

SRAD System Requirements and Architecture Document

WFO Workforce Optimization

DMCC Device Media and Call Control

CTI Computer Telephony Integration

Appendix B ndash Content out of scope This document does not cover

Administration and configuration details of Avaya Aura products like Communication Manager Application Enablement Services and Avaya Contact Recorder

This document does not introduce nor describe the AE Services Device Media and Call Control API which is a necessary component of a call recording solution

Administration of the recording application

Licensing requirements of the recording application

Troubleshooting recording application

Appendix C ndash Troubleshooting

1 Broken connection between POM and recording application How to Identify To verify a TCP connection log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7999 command Verify ESTABLISHED status on configured port with the configured POM IP address (in this case that is 14814717389 Example for a configured port of 7999 is shown below

Corrective action

Ensure both POM and recording application is in network and is reachable

Ensure POM service andor POM agent manager service is running Refer Implementing Proactive Outreach Manager and Troubleshooting Proactive Outreach Manager documents for more details

2 TLS Handshake failure between POM and recording application

How to Identify To verify handshake is successful and a TCP connection is established log in to the Linux shell of the Avaya Proactive Outreach Manager server and issue the below command netstat ndashna | grep 7998 command Verify ESTABLISHED status on configured port with the configured POM IP address Corrective action

Ensure POM server certificate is exported successfully from POM server configuration page as explained in section TLS based secured connection

Ensure the exported certificate is copied to trust store of recording application

Ensure enable secured connection is configured in global configuration page Ensure agtmgr service is restarted before initiating a connection from the recording application to POM

In case of multiple POM server deployment or multiple recorder application deployment ensure the certificate exchange is done with all POM servers involved

3 Recording application login authentication failure How to Identify POM server responds to LoginRequest with various error codes as described in section LoginResponse Event Use sample client to send and receive login response in order to receive the error code Corrective action

Ensure POM server IP address configured in login request is correct

Ensure credentials to login are correct

Ensure correct LoginRequest XML message interface definition is used by the recording application

Ensure correct zone name is mentioned in the LoginRequest XML message

4 No recording events sent to recording application

How to Identify No recording files are listed in recording application Corrective action

Ensure connection to POM server is established

Ensure authentication with POM server is successful

Login an agent in POM via desktop and let the agent work on a call with the customer

Use sample client to send LoginRequest with pumpup attribute value set to true and verify whether ListAgentsResponse is received by the sample client The ListAgentsResponse should contain details of the logged in agent in payload For details on xml messages being shared between POM and Recorder application please check the PIM_AgtMgrlog file available in $POM_HOMElogs folder on the POM system

If all the above steps are working troubleshoot the recording application