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 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.
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.
npm install @gco-vnext/softphone-uiThe 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={} />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
}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.
| 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. |
| 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. |