Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Return to User Hub



LiveVox REST APIs:

 

Details regarding each API referenced below 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”

 

 

Virtual Agent Management and Data Collection

 

  1. A set of Virtual Agents will be configured on the LiveVox portal. There is a 1 to 1 ratio of Virtual Agents to calls handled by the AI Vender. The client will need to plan for the appropriate # of Virtual Agents required to handle their call volume (determine max # of simultaneous calls per service connected to the AI Vendor)
  2. AI Vendor will need to make the Virtual Agents READY on the platform:
    1. Obtain the Virtual Agent Session ID
      POST https://{{APIHost}}/session/login
      Header: LV provided API Token
      Body example : {"clientName": "Training2", "userName": "AI Vendor1", "password": "xxxx", "agent": "true" }
    2. Add the Virtual Agent to the appropriate Service
      POST https://{{APIHost}}/callControl/agent/service/join?serviceId=XXXXXX&phoneNumber=899XXXXXXX (see below for more info related assigning agent 899#s)
      Header: SessionID from 2a.
    3. Set the Virtual Agent to READY
      POST https://{{APIHost}}/callControl/agent/status/ready
      Header: SessionID from 2a.

      NOTE :  LiveVox Session IDs expire with no activity after 2 hours. If a Virtual agent does not change state (i.e. receive a call), the Session ID will expire. Thus, it’s recommended to cycle any Virtual agents in a Ready state to Not Ready and back to Ready every hour.

      It’s recommended that Virtual Agents are only logged in during the defined LiveVox call center open hours. If Virtual Agents are expected to receive calls outside of open hours, additional planning related to routing and other factors such maintenance windows should be considered. Virtual Agent support during closed hours should be addressed as part of phase 2+ work.
  3. When a call is routed to the Virtual Agent via LiveVox standard routing services, LiveVox will “conference” the AI Vendor using a unique 899# for the agent. The unique agent 899# will pass as part of the INVITE. This allows the AI Vender to identify the call associated with each agent. For example:

    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.

  4. If the AI Vendor collects additional data that should be associated with the contact, use the LiveVox Update Contact API.
    Update the Contact
    PUT https://{{APIHost}}/contact/contacts/{account}
    Header: SessionID from 2a.
    Body : See LiveVox Developer Portal for details and work with the client to determine which fields in Contact Manager to update
    NOTE: this should be data that is stored long term 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)

  5. If the AI Vender collects call specific data that should be screen popped to a Human Agent, use the LiveVox AI Integration App(AIA) API.

    1. Update the AIA

    2. URL is client specific (will be provided as part of the client specific project)

    3. A Separate Specification document will be provided for the Method, Headers, Parameters and Body of the AIA

    4. Data fields include:

      1. transactionId
      2. sessionId
      3. ani
      4. accountNumber
      5. nextAction
      6. callOutcome
      7. lvresult
      8. Other1
        thru
      9. Other20
  6. If the Client wants to route non LiveVox validated Consumers to the AI Vendor, AI Vendor can collect info and Update Contact via ‘Update Contact API’ or Create a Contact via ‘Create Contact API’

    1. Update the Contact
      PUT https://{{APIHost}}/contact/contacts/{account}
      Header: SessionID from 2a.
      Body : See LiveVox Developer Portal for options to update

    2. Create Contact
      PUT https://{{APIHost}}/contact/contacts/
      Header: SessionID from 2a.
      Body : See LiveVox Developer Portal for options to update

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

    1. Get the TransID and SessionID for the call:
      POST https://{{APIHost}}/callControl/agent/status
      Header: SessionID from 2a
      Body example: {"stateChangedAfter": "1573809480000"}

    2. Assign the agent Term code:
      PUT https://{{APIHost}}/callControl/agent/call/termCode
      Header: SessionID from 2a
      Body example: {"callTransactionId": "108821676850", "callSessionId": "U5EF8FT5DFC07F9@10.101.21.216", "termCodeId": "101416228", "phoneDialed": "2134634007", "moveAgentToNotReady" : "false"}

  8. Virtual Agent is ready to receive another call

 

Customer Portal Config Requirements:

  1. Create/Configure Virtual Agents (requires LiveVox to configure Virtual Agents):
  2. Set Service ACD mode to “Agent Call Out”
  3. Set Service Groups for Virtual Agents as “LONGEST_AVAILABLE_AGENT”
  4. Create Term codes to support transfers to Human Agents
  5. Load contacts into Contact Manager
  6. Update Call Flows to validate Consumers against Contact Manager

 

Sample SIP INVITE

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

    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


  • No labels