Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Section


Column
width20%

Excerpt Include
Product Webinars
Product Webinars
nopaneltrue


Column
width80%


Tip
iconfalse
titleContents

Table of Contents

Introduction

This document provides a model for integrating LiveVox with an artificial intelligence speech vendor (AI Vendor). The document is intended for the AI Vendor and their clients.

LiveVox REST APIs

:

 

Details regarding about each API that is referenced below in this document can be found in the LiveVox Session, Call Control, and Contact APIs on the LiveVox Developer portal.

 

LiveVox Developer Portal access:

https://docs.livevox.com/display/DP/Developer+Portal

username: prospect

password: Livevox12345^

 

Start with “LiveVox API Overview”-> ”LiveVox API Quick Start Guide”

 

 

(Username: prospect; Password: Livevox12345^).

Info

To begin with, see the LiveVox API Overview and LiveVox API Quick Start Guide sections of the portal.

Virtual Agent Management and Data Collection

 

A set of Virtual Agents

will be

are configured on the LiveVox portal.

There is a 1 to 1

A one to one ratio of Virtual Agents

to

exists for calls handled by the AI

Vender

Vendor. The client

will need to

must plan for the appropriate

#

number of Virtual Agents

required

to handle their call volume

(determine max #

, in addition to determining the maximum number of simultaneous calls

per

for each service connected to the AI Vendor

)

.

  1. The AI Vendor will need to make must ensure that the Virtual Agents READY are ready on the platform. To do so:
    1. Obtain the Virtual Agent

      Session

      session ID.

      Info
      POST https://{{APIHost}}/session/login
      Header:
      LV provided API Token
      API token provided by LiveVox
      Body example: {"clientName": "Training2", "userName": "AI Vendor1", "password": "xxxx", "agent": "true"
      }
       



    2. Add the Virtual Agent to the appropriate

      Service

      service.

      Info
      POST https://{{APIHost}}/callControl/agent/service/join?serviceId=XXXXXX&phoneNumber=899XXXXXXX (see below for more info related assigning agent 899#s)
      Header:
      SessionID
      Session ID from
      2a.
      1



    3. Set the Virtual Agent to READY.

      Info

      POST https://{{APIHost}}/callControl/agent/status/ready
      Header:

      SessionID from 2a.

      Session ID from 1a


      Note
      • The LiveVox session ID expires after two hours of inactivity
      NOTE :  LiveVox Session IDs expire with no activity after 2 hours
      • . If a Virtual
      agent
      • Agent does not change the state (
      i.e.
      • that is, receive a call), the
      Session
      • session ID
      will expire
      • expires.
      Thus, it’s recommended to cycle any Virtual agents in a
      • Therefore, the client must move Virtual Agents in the Ready state to the Not Ready state, and then back to the Ready state, every hour.
      It’s recommended that
      • Virtual Agents
      are only logged in
      • must be logged on only during the defined open hours of the LiveVox call center
      open hours
      • . If
      Virtual Agents
      • they are expected to receive calls outside
      of
      • the open hours, additional planning related to routing and other factors (such as, maintenance windows
      should
      • ) must be considered. Virtual Agent support during closed hours
      should
      • must be addressed as part of phase 2+
      work
      • .


  2. When a call is routed to the Virtual Agent via through the LiveVox standard routing services, LiveVox will “conference” conferences the AI Vendor using a unique 899# 899 number for the agent. The unique agent 899# will pass This unique number passes as part of the INVITEinvite. This allows the AI Vender Vendor to identify the call calls associated with each agent. For example: 

    An example is as follows.

    LiveVox Virtual AgentINVITE (example only)
    Virtual_Agent_1INVITE sip:+18990000001@XX.XXX.XX.XX:5070 SIP/2.0^M
    Virtual_Agent_2INVITE sip:+18990000002@XX.XXX.XX.XX:5070 SIP/2.0^M
    Virtual_Agent_3INVITE sip:+18990000003@XX.XXX.XX.XX:5070 SIP/2.0^M
    See below for a detailed INVITE example.


  3. If the AI Vendor collects additional data that should must be associated with the a contact, use the LiveVox Update Contact API.Update the Contact

    Info
    PUT https://{{APIHost}}/contact/contacts/{account}
    Header:
    SessionID
    Session ID from
    2a.
    1a
    Body: See the LiveVox Developer Portal for details and work with the client to determine which fields in Contact Manager
    to update
    NOTE: this should be data
    must be updated



    Note

    The additional data must be one that is stored for a long

    term

    time and associated with the contact

    . For example, update to contact info, recording of payment, etc. This is not intended for call specific data that would be presented in the Human Agent screen pop and would change for subsequent calls, such as were the consumer left the Virtual agent, call reason, etc.  Call specific screen pop data should use the LiveVox AI Integration App (see #5)


  4. If the AI Vender Vendor collects call data specific data that should be screen popped to a to calls that appear on the Human Agent screens, use the LiveVox AI Integration App (AIA) API.

    Note
    • Update the AIA.
    • The URL is
    client specific (will be
    • specific to a client and is provided as part of the client
    specific
    • 's project
    )
    • .
    • A
    Separate Specification document will be
    • separate specification document is provided for the
    Method
    • method, headers,
    Headers
    • parameters,
    Parameters
    • and
    Body
    • body of the AIA.
    Data
    • The data fields include:
      • transactionId
      • sessionId
      • ani
      • accountNumber
      • nextAction
      • callOutcome
      • lvresult
      • Other1
        thru
      • Other20


  5. If the Client client wants to route non-LiveVox validated Consumers consumers to the AI Vendor, the AI Vendor can collect info data and update the contact through the Update Contact via ‘Update Contact API’ or Create a Contact via ‘Create Contact API’

    Update the Contact

    API or create a contact through the Create Contact API.

    Info

    To update the contact:

    PUT https://{{APIHost}}/contact/contacts/{account}
    Header:

    SessionID

    Session ID from

    2a.

    1a
    Body: See the LiveVox Developer Portal for options to update

    Create Contact



    Info

    To create a contact:

    PUT https://{{APIHost}}/contact/contacts/
    Header:

    SessionID

    Session ID from

    2a.

    1a
    Body: See the LiveVox Developer Portal for options to update


  6. When the AI Vendor completes the a call, a term code will be is assigned to the call indicating that either the call is done, over or the call needs to must be transferred to a Human Agent:

    Get

    .

    Info

    To obtain the TransID and SessionID for the call:

    POST https://{{APIHost}}/callControl/agent/status
    Header:

    SessionID

    Session ID from

    2a

    1a
    Body example: {"stateChangedAfter": "1573809480000"}

    Assign



    Info

    To assign the agent

    Term

    term code:

    PUT https://{{APIHost}}/callControl/agent/call/termCode
    Header:

    SessionID

    Session ID from

    2a

    1a
    Body example: {"callTransactionId": "108821676850", "callSessionId": "U5EF8FT5DFC07F9@10.101.21.216", "termCodeId": "101416228", "phoneDialed": "2134634007", "moveAgentToNotReady": "false"}



    The Virtual Agent is now ready to receive another call
 
  1. .

Customer Portal Config Requirements

:

  1. Create

    /Configure

    or configure Virtual Agents

    (requires LiveVox

    .

    Note

    LiveVox is required to configure Virtual Agents

    ):

    .


  2. Set the Service ACD mode to “Agent Agent Call Out”Out.
  3. Set Service Groups for Virtual Agents as “LONGESTto LONGEST_AVAILABLE_AGENT”AGENT.
  4. Create Term term codes to support transfers to Human Agents.
  5. Load contacts into Contact Manager.
  6. Update Call Flows call flows to validate Consumers consumers against Contact Manager
 
  1. .

Sample SIP INVITE

   Request-Line: INVITE sip:+18990000001@XX.XX.XX.XX:5060 SIP/2.0

    Message Message Header

       Record-Route: <sip: XX.XX.XX.XX:5060;r2=on;lr;did=0c.a75cb3e7>

       Record-Route: <sip: XX.XX.XX.XX;r2=on;lr;did=0c.a75cb3e7>

       Record-Route: <sip: XX.XX.XX.XX:5070;lr;did=0c.9c237b23>

       To: sip:+ 18990000001@ XX.XX.XX.XX:5070

       Contact: <sip: XX.XX.XX.XX:5060;transport=udp>

       Call-ID: 5e18e8dc-0000-7b7397a3-f7f2e4ec-d3e93b6c@10.101.21.27

       CSeq: 4117825 INVITE

       Content-Length: 177

       Content-Type: application/sdp

       From: <sip:+19192109237@ XX.XX.XX.XX:5060>;tag=telstage-4c11af69-5e18e8dc

       X-Lv-Destination-Ip:

       X-Lv-Destination-Port: 5060

       Session-Privacy: no

       Carrier-Name: tmis

       Session-ID: U2DB327T5E18E8DC@XX.XX.XX.XX

       Pool-Name: carrierinbound

Allow: INVITE, ACK, CANCEL, BYE, REFER, NOTIFY, OPTIONS, INFO, REGISTER, SUBSCRIBE, MESSAGE,    UPDATE

       Session-Expires: 1800;refresher=uac

       Supported: timer

       Max-Forwards: 68

       Via: SIP/2.0/UDP XX.XX.XX.XX:5060;branch=z9hG4bK623f.ac426ea3.0

       Via: SIP/2.0/UDP XX.XX.XX.XX:5070;received= XX.XX.XX.XX;branch=z9hG4bK623f.02823352.0

       Via: SIP/2.0/UDP XX.XX.XX.XX:5060;branch=z9hG4bK5e18e8dc-0000-7b7397a4-f7f2e4ec-d3e93b6c