Pexip WebApp3 Plugin to directly dial a Genesys Contact Center Agent and present the User’s Alias within the Genesys Interaction.
The Genesys Agent answers the audio call and escalates to Pexip Video via standard Pexip-Genesys integration (interaction widget) whilst ensuring all voice service remain as is on Genesys.
Configuration on Genesys is required to route to the Genesys agent and pass the Interaction Customer Name (CLID) based on a x-header.
Webapp3 URL Format:
https://PexipInfinity/branding/m/vmr/express?agent=agentname@domain.com
Source Code: (GitHub - gregwalker-pexip/genesys: Genesys WebApp3 Plugin)
Note: The agentID is obtained via URL Search Paramters which will be blocked if running locally and must thus must be deployed to function.
Solution requires Pexip-Genesys integration and the Pexip Integration widget deployed within the customers Genesys deployment via Genesys App Foundary.
2 Likes
Thanks Greggie,
I created a Pexip branding with a plugin based on this and it’s working.
However, I want to leave here some details explaining how it works and some problems that I had during the integration.
First of all, I want to say that we can see the SIP messages between Pexip and Genesys in the logs of the management node (History & Logs > Support Log).
The first problem was that the call wasn’t arriving to Genesys, so I checked the logs in Pexip and I found that Genesys was asnwering with 488 Not Acceptable Here
. This means that there was a problem with the SDP, so I checked the content of the INVITE and I saw the following:
m=audio 48644 RTP/AVP 98 96 99 101 102 105 108 109 9 18 0 8 124
Pexip is requesting RTP/AVP
instead of `RTP/SAVP, so there first thing that we will need to do is to force the encryption:
- Open the management node URL.
- Click in Services > Call Routing.
- Select the routing for Genesys.
- Go to Call media settings > Media encryption.
- Select
required
.
Now we should be able to establish a call between the Pexip and Genesys.
The next goal is to be able to read the X-User-To-User
and route to the selected agent.
The next goal is to modify the queue to work with a preferred agent.
- Go to Genesys.
- Click on Admin > Contact Center > Queues.
- Select the queue that you want to use.
- Click on the tab Routing.
- In the Routing Method selector choose
Preferred Agent Routing
. Here you can select how much time it will ring the phone before jump to the next available agent.
Now we will instruct the Genesys Trunk to read the X-User-to-User
header:
- Go to Genesys.
- Click on Admin > Telephony > Trunks.
- Select the Trunk that you are using for the inbound call.
- If you go down, you will see the Protocol tab. Click on there.
- In User to User Information (UUI) enable "UUI Passthrough.
- Select here the following data:
- Type: X-User-To-User.
- Encoding Format: ascii
Now Genesys can use this header. Let go to the Genesys Architect and start using it:
- Go to the architect view:
https://apps.usw2.pure.cloud/architect/
- Go to the Inbound flow.
- Set a “Switch” that will route the call to different agents.
- In the cases for the route we will have to put something like this:
Call.UUIData == "marcos.cereijo@pexip.com"
. The UUIData is the content of the X-User-To-User
header. For example, in this case it should be the following:custom_sip_headers: {
'X-User-To-User': 'marcos.cereijo@pexip.com;encoding=ascii'
}
- Now we create a “Transfer to ACD” for that Case.
- Select the proper queue.
- Select the priority (e.g. 100)
- Define the “Preferred Agents”:
MakeList(
MakeAgentScorePair(
FindUserById("e02718ce-2ae8-4429-bdb0-2d55f701a545"),
100
)
)
We can get the user id if we go to the Genesys interface (Admin > People & Permissions > People) and select any user. The user id will be visible in the URL (e.g. https://apps.usw2.pure.cloud/directory/#/admin/directory/peopleV2/e02718ce-2ae8-4429-bdb0-2d55f701a545/roles
)
You have to repeat this final step for the rest all the agents.
Now you will be able to route the call to a preferred agent from your Pexip deployment.
We made some modifications and now we define the agent id in the URL (e.g. https://pexipdemo.com/webapp3/m/<my-meeting>/express?agent=e02718ce-2ae8-4429-bdb0-2d55f701a545
)
So we only have to define one Transfer to ACD with the following preferred agent:
MakeList(
MakeAgentScorePair(
FindUserById(Call.UUIData),
100
)
)
It’s simple and it works like a charm.