Voice Features


Voyager Next utilizes the Softphone application, allowing agents to take incoming and outgoing voice calls.

The partner will have to select telephone numbers which they can share with their customers through their website. The partner will also have to add queues and associate attributes that will help a call to route to the Voyager NEXT (VNext) softphone, as well as set up softphone service provisioning for their agents (see Onboard Agents). Once setup is done, the agent will see the softphone pop up after login in to VNext.

For more info on voice services, see Voice Channel Integration.

Softphone

Softphone is an embeddable web based software telephone that enables agents to handle incoming, and outgoing phone calls. While on the call, they hve access to phone features like mute, hold, hang up over webRTC. Softphone application can be plugged into any web application with minimal development effort.

Enable Softphone in Voyager Next through the Conversation Platform, and follow the quick start guide (Voice Configuration) to get started.

Softphone Features

  • Ability to receive incoming calls with caller id.
  • Display call statuses like Active, Muted, On Hold, Wrap Up.
  • Show duration of a call.

1100039526

  • Utilize call controls like mute, unmute, hold, resume, end call, transfer call, conference call.

1100039615

  • Provide agent a wrap up time to finish pending work after a call is completed.
  • Configurable auto answer feature to save average handle time (AHT)

1100039531

  • Outbound call dialer

1100039522

Bring Your Own Container for Softphone

A partner can choose to not use VNext as a container for softphone and still be benefitted by it. Here are the steps to ensure that softphone can be configured in any HTML container.

Adding Softphone Package as a Module Dependency

npm install @gco-vnext/softphone-ui

Adding Softphone into Your Application

The following will add the Softphone UI into your application. This step assumes that the parent application is written using React

import Softphone from '@gco-vnext/softphone-ui';
<Softphone props={} />

Passing Properties into Softphone

The following properties are required for the Softphone to work properly. You would need to pass those properties to the Softphone component as props object.

{
    client: string,
    authToken: string,
    accessTokenEndpoint: string,
    activeConversationId: string,
    customerInfo: {
        customerName: string,
        customerPhoneNumber: string
    },
    agentIdentifier: {
        id: string,
        firstName: string,
        lastName: string
    },
    hasCustomerLeft: boolean,
    setActiveConversationId: function,
    activeVoiceCallEnd: function,
    wrapUpActiveCall: function,
    sendFocus: function,
    logAction: function,
    deviceRegistrationErrorHandler: function,
    holdCall: function,
    resumeCall: function,
    voiceHoldResumeAction: string,
    voiceHoldResumeActionResult: boolean
}

What are the props and what are they used for?

Props passed to the softphone component can be segregated into data and actions.

The Softphone communicates with its parent container using Redux to perform actions.

Data

Prop Description
client Name of voice provider like Twilio where an agent is configured to place or receive calls.
Possible values: twilio
authToken Agent's authentication token (JWT) generated while logging to parent application.
accessTokenEndpoint VoyagerNext service URL to fetch the access token to initialize softphone with Twilio
activeConversationId Conversation Id of incoming call.
customerInfo Caller details
agentIdentifier Agent details
hasCustomerLeft Boolean field that indicates whether customer left the call or not.

Redux Actions

Action Description
setActiveConversationId Function called when an incoming phone call arrives on WebSocket connection to let VNext set activeConversationId.
activeVoiceCallEnd Function called when a phone call ends. This is used by VNext to close conversation.
wrapUpActiveCall Function called when a phone call ends. This is used by VNext to update Redux state.
sendFocus Function called to inform Data Intelligence system when inbound call arrives.
logAction Function called to log events.
deviceRegistrationErrorHandler Function called when it fails to register to voice provider.
holdCall Function called when agent presses hold button.
resumeCall Function called when agent presses resume button.
voiceHoldResumeAction String that represents last action performed between Hold and Resume.
voiceHoldResumeActionResult Boolean value that represents result of last action between Hold and Resume.