Finesse APIs: Getting started with the REST APIs and XMPP events

Similar documents
Creating a custom gadget using the Finesse JavaScript Library API

NXOS in the Real World Using NX-API REST

Your API Toolbelt Tools and techniques for testing, monitoring, and troubleshooting REST API requests

Manage Finesse IP Phone Agent

Automation with Meraki Provisioning API

Get Hands On With DNA Center APIs for Managing Intent

Cisco Finesse. The Next Generation Agent Experience. Ted Phipps Sr. Manager, CCBU Product Management

DEVNET Introduction to Git. Ashley Roach Principal Engineer Evangelist

DevNet Workshop-Hands-on with CloudCenter and Jenkins

Git, Atom, virtualenv, oh my! Learn about dev tools to live by!

CloudCenter for Developers

Hands-On with IoT Standards & Protocols

Cisco Contact Center Express 10.0: Feature Design, Deployment, and Troubleshooting

Manage Workflows. Workflows and Workflow Actions

Managing Cisco UCS with the Python SDK

Hybrid Cloud Automation using Cisco CloudCenter API

Cisco Spark Messaging APIs - Integration Platforms as a Service Real World Use-Cases

Magical Chatbots with Cisco Spark and IBM Watson

An Introduction to Developing for Cisco Kinetic

Introduction to OpenConfig

Unified CCX Administration Web Interface

ICE / TURN / STUN Tutorial

Cisco UCS Agentless Configuration Management Ansible or Microsoft DSC

BGP in the Enterprise for Fun and (fake) Profit: A Hands-On Lab

Who wants to be a millionaire? A class in creating your own cryptocurrency

Automation and Programmability using Cisco Open NXOS and DevOps Tools

NetDevOps Style Configuration Management for the Network

Tetration Hands-on Lab from Deployment to Operations Support

2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

Coding Intro to APIs and REST

Task Routing. Task Routing

EMBRAVA CONNECT USER GUIDE. User Guide. Embrava Connect Embrava Pty Ltd Embrava Pty Ltd 1

An Introduction to Monitoring Encrypted Network Traffic with "Joy"

Port Utilization in Finesse

Deploying Cloud-Agnostic Applications with Cisco CloudCenter

Empower your testing with Cisco Test Automation Solution Featuring pyats & Genie

Consuming Model-Driven Telemetry

Privacy Requirements Scoping

Getting Started with OpenStack

Spark SDK Video - Overview and Coding Demo

Cloud Mobility: Meraki Wireless & EMM

Hands On Exploration of NETCONF and YANG

Cisco Spark Widgets Technical drill down

Real time Location Services Overview and Use cases

Cisco WAN Automation Engine (WAE) Network Programmability with Segment Routing

DevOps CICD for VNF a NetOps Approach

Cisco SD-Access Hands-on Lab

Cisco Container Platform

Programming with the Finesse API

Cisco Spark. Questions? Use Cisco Spark to communicate with the speaker after the session. How

Insights into your WLC with Wireless Streaming Telemetry

DevNet Workshop-Learning Cisco platform Exchange Grid (pxgrid) Dynamic Topics

TRex Realistic Traffic Generator

PSOACI Tetration Overview. Mike Herbert

BRKCOC-2399 Inside Cisco IT: Integrating Spark with existing large deployments

WORKSHOP: from Zero to a Network Application with #golang

Cisco Enterprise Agreement

You can configure different reason codes with the same reason code label across various teams.

European DevNet Pros Panel

NSO in Brownfield: Fully Automated One-Click Reconciliation

Coding Getting Started with Python

Manage Team Resources

PnP Deep Dive Hands-on with APIC-EM and Prime Infrastructure

Certificates for Live Data

Introducing Cisco Network Assurance Engine

Cisco Finesse Release 10.5(1) ES2

Cisco VIRL. The Swiss-Army Knife of Network Simulators. Simon Knight, Software Engineer Brian Daugherty, Technical Leader.

The Transformation of Media & Broadcast Video Production to a Professional Media Network

Cisco Finesse Desktop Interface

Cisco Finesse Release 9.1(1) ES5

Release Notes for Cisco Finesse Release 9.0(1)

Set Up Voic on Cisco Unified Communications Manager

Cisco Finesse desktop interface

Cisco Finesse Release 10.5(1) ES3

Cisco Finesse Desktop Interface

Subsystems Menu. RmCm to set up your Unified CCX resources.

Internet of Things Field Network Director

Managing The Digital Network Workforce Transformation

Cisco Spark API Workshop

Customising your Contact Centre with Finesse and CUIC Michael Green, Technical Solutions Manager CCBU

Catalyst 9K High Availability Lab

Stateless Multicast with Bit Indexed Explicit Replication

VXLAN EVPN Fabric and automation using Ansible

Serviceability of SD-WAN

External HTTPS Trigger AXIS Camera Station 5.06 and above

DevNet Sandbox Collaboration 11.5

Cisco UCS Director and ACI Advanced Deployment Lab

For Live Data reports, you will only have the Html permalink. Html permalink for Live Data reports always require authentication.

Tour the latest Cisco Spark API features

Cisco DNA Center and Italtel Netwrapper Evolution: Network and Applications come together

Unified CCX Administration Web Interface

Simplifying Collaboration Deployments with Prime Collaboration

User Authentication APIs

Mobile Agent App Data Sheet. Comstice Mobile Agent App is a Cisco Finesse client for Cisco UCCE/PCCE and UCCX

Community Manager Guide: Jive Jabber Add-on

Customer s journey into the private cloud with Cisco Enterprise Cloud Suite

Cisco Finesse. Introduction

Ipswitch: The New way of Network Monitoring and how to provide managed services to its customers

Cisco Connected Mobile Experiences REST API Getting Started Guide, Release 10.2

Enterprise Recording and Live Streaming Architecture with VBrick

Transcription:

Finesse APIs: Getting started with the REST APIs and XMPP events Denise Kwan, Software Engineer @ DevNet

Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session in the Cisco Live Mobile App 2. Click Join the Discussion 3. Install Spark or go directly to the space 4. Enter messages/questions in the space cs.co/ciscolivebot# 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

Agenda Introduction to Finesse Finesse REST APIs and Notifications Understanding Finesse s Developer s Guide Hands-on Workshop

Cisco Finesse Revolutionizing the Contact Center Agent Experience Browser-based agent desktop for easy management & upgrades Empower agents via a personalized all-in-one application Integrate Finesse into existing applications (thick or thin) Integrate existing applications into the Finesse agent desktop Easy-to-use REST and JavaScript APIs for performing agent and supervisor actions programmatically 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 5

New in Finesse 11.6 Integrated System generated Not Ready Reason Codes Secondary CallId for transfers and conferences Alternate host for loading gadgets State and call history gadgets Direct Transfer Ability to make a call from READY state Ability to monitor Outbound calls on ACD line Reserve the UCCX 11.6 sandboxes to try out these new features! 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 6

Finesse REST APIs and Notifications

REST APIs Modeled after HTTP Works in thick and thin client integrations Easy to integrate into applications there are many libraries to make HTTP requests Used to request an action GET requests are synchronous. The response body of a successful GET request contains all requested contents. PUT and POST requests are asynchronous. A successful response is an HTTP return code of 200 or 202. The response body does not contain the updated object information. When the PUT and POST request is processed, a notification via XMPP will be sent with the updated object information 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 8

Finesse Notifications Uses XMPP protocol as the data communication channel For web applications, the XMPP payload needs to be encapsulated within the HTTP protocol, known as BOSH Can find existing XMPP libraries here: https://xmpp.org/software/libraries.html Used for asynchronous reception of events There can only be 1 connection to the Finesse Notification Service per user, where the Finesse out of the box desktop counts as one. 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 9

Application on Client 2) Application/browser calls the User Sign In REST API PUT http://finesse.cisco.com:8082/finesse/api/user/agent001 Content-Type: application/xml Request Body: <User> <state>login</state> <extension>6001</extension> </User> Finesse Server 1 3) Finesse server receives the request and immediately sends back a HTTP response of 202 Accepted with a blank response body HTTP/1.1 202 Accepted 3 2 HTTP REQUEST HTTP RESPONSE 5 BOSH 5) The client receives the notification via the BOSH connection and processes the response notification Webservices Notification Service 4 4) Finesse publishes the response of the request as a notification to the User node /finesse/api/user/agent001 <Update> <data> <user>... <state>not_ready</state>... </user> </data> <event>put</event> <source>/finesse/api/user/agent001</source> </Updatec> 1) Agent clicks the Sign In button <Update> <data> <apierrors> <apierror> <errordata>260</errordata> <errormessage>cf_invalid_device</errormessage> <errortype>invalid Device</errorType> </apierror> </apierrors> </data> <event>put</event> <source>/finesse/api/user/agent001</source> </Update> 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 10

Understanding Finesse s Developer s Guide

Finesse Developer Guide Documentation On DevNet s Finesse site: On your browser, go to the DevNet home page: http://developer.cisco.com Click on the Technologies tab Click on Collaboration on the left hand side and select Finesse under Contact Center Click on Docs on the upper right Select REST API Developer Guide under Guides 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 12

How to use the Finesse Developer Guide The URI is the REST API URL where <FQDN> is the fully-qualified domain name of the Finesse server. In a UCCE deployment, you must include the port number 8445 in the URI for HTTPS requests. In a UCCX deployment, you must include the port number for both HTTP (8082) and HTTPS (8445). The <id> is the user s AgentID (Peripheral number) for UCCE and User ID for UCCX. The HTTP Method is the HTTP request method/verb for this REST API. The Security Constraints states which user/role has permissions to use this REST API. In this example, the user <id> is the only user who can use this REST API. The Content Type is the MIME type of the body of the request (used with POST and PUT requests). All Finesse REST APIs use Application/XML as the content type. GET: Retrieve a single object or list of objects (for example, a single user or list of users). PUT: Replace a value in an object (for example, to change the state of a user from NOT_READY to READY). POST: Create a new entry in a collection (for example, to create a new reason code or wrap-up reason). DELETE: Remove an entry from a collection (for example, to delete a reason code or wrap-up reason). The Input/Output Format is the format of the HTTP request/response body. All Finesse REST APIs use XML as the input/output format. The HTTP Request is the content of the HTTP request body (used with POST and PUT requests). Since the input format of the REST API is XML, the content of the body is in XML format. 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 13

How to use the Finesse Developer Guide (Cont.) The Request Parameters are the parameters for this REST API. There are three different types of parameters: Body parameter: A parameter (also known as a complex parameter) that appears in the body of the message Path parameter: A parameter that is included in the path of the URI Query parameter: A parameter is passed in a query string on the end of the URI you are calling It also defines each parameter and states if it is required or optional. With the exception of the SystemInfo API, all Finesse REST APIs use HTTP BASIC Authentication which requires the credentials to be sent in the "Authorization" header. The credentials contain the username and password, separated by a single colon (:), within a BASE64-encoded string. The HTTP Response lists the different HTTP status codes and its definition that can be returned for this REST API. This is useful for handling the different types of failures associated to this REST API. The Example Failure Response is a sample HTTP response body when the REST API call was not successful. The Notifications Triggered lists the object(s)/node(s) that will receive a notification as a result of this REST API. 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 14

Hands-on Workshop

Objective Use Postman to make REST API requests Use Adium to receive Finesse notifications Understand how the REST APIs and Finesse notifications work hand in hand Make a REST API request and receive the notification(s) as a result of the request 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 16

Set up Adium to receive Finesse notifications Adium is an instant messaging application for Mac OS X that can connect to XMPP (Jabber). Pidgin is equivalent and the preferred client for Windows. There are other XMPP clients, but not all of the clients expose an XMPP console, which we will need to view the Finesse notifications. Adium is just a tool to view the Finesse notifications. This is not needed if you are programmatically receiving notifications. Go to https://xmpp.org/software/libraries.html for a list of XMPP libraries for the different programming languages 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 17

Automatically subscribed nodes Each agent is automatically subscribed to the following notification feeds, where {id} represents the agent ID for that agent: User - /finesse/api/user/{id} Dialogs - /finesse/api/user/{id}/dialogs Queues - /finesse/api/queue/{id} Media - /finesse/api/user/{id}/media/{mrd-id} SystemInfo - /finesse/api/systeminfo Any notifications sent to these nodes will automatically be received by that agent if they connected to the Finesse Notification Service. 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 18

User The User object represents an agent or supervisor and includes information about the user, such as roles, state, and teams. In this step, we will be using two User APIs: Get the User object: GET http://hq-uccx.abc.inc:8082/finesse/api/user/agent001 Log in the User: PUT http://hq-uccx.abc.inc:8082/finesse/api/user/agent001 <User> <state>login</state> <extension>6001</extension> </User> 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 19

Dialog Make a call: POST http://hq-uccx.abc.inc:8082/finesse/api/user/agent001/dialogs <Dialog> <requestedaction>make_call</requestedaction> <fromaddress>6001</fromaddress> <toaddress>6002</toaddress> </Dialog> 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 20

Dialog Take an action on the call: PUT http://hq-uccx.abc.inc:8082/finesse/api/dialog/{dialog id} <Dialog> <targetmediaaddress>6001</targetmediaaddress> <requestedaction>drop</requestedaction> </Dialog> 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 21

User Log out the User: PUT http://hq-uccx.abc.inc:8082/finesse/api/user/agent001 <User> <state>logout</state> </User> 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 22

How to Learn More About Finesse At Cisco Live! Finesse Learning Labs Finesse DevNet site: http://developer.cisco.com/site/finesse Finesse Community (fourm) Finesse Sample Gadgets REST API & JavaScript library Developer Guides Learning Labs Finesse Sandbox (PCCE & UCCX) 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 23

Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session 1. Find this session in the Cisco Live Mobile App 2. Click Join the Discussion 3. Install Spark or go directly to the space 4. Enter messages/questions in the space cs.co/ciscolivebot# 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

Please complete your Online Session Evaluations after each session Complete 4 Session Evaluations & the Overall Conference Evaluation (available from Thursday) to receive your Cisco Live T-shirt All surveys can be completed via the Cisco Live Mobile App or the Communication Stations Complete Your Online Session Evaluation Don t forget: Cisco Live sessions will be available for viewing on-demand after the event at CiscoLive.com/Online. 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public

Continue Your Education Demos in the Cisco campus Walk-in Self-Paced Labs Tech Circle Meet the Engineer 1:1 meetings Related sessions 2018 Cisco and/or its affiliates. All rights reserved. Cisco Public 26

Thank you