CTI JS Library Configs on Unified Admin
Managing the MRD, and ChannelType for the voice platform and Identifying which voice platform is enabled
Problem
Hard Coding the Voice MRD in the Agent desk | We map the Agent State coming from the CISCO with the relevant voice MRD, so for this, we are using a hardcoded MRD named "VOICE". | |
---|---|---|
Hard Coding the Voice Channel Type in the Agent desk | On leaving a conversation in case a voice channel session is active, | |
Which library needs to load during the Agent desk Load-up | For handling the voice channel the Agent desk needs to know which platform is being used for voice calls, either Cisco or free switch so that the relevant library will create a connection with the relevant platform |
SOLUTION:
There will be bootstrapped voice platform names like Freeswitch, CISCO, teams, etc. (these names will act as an identifier for the front end that, these platforms are currently being used for voice channels)
UNIFIED ADMIN
On the admin there will be a page named voice platform settings, in the page there will be an option to add dynamic forms to add support currently enabled voice platforms.
While creating a form, a user can
- Add a voice platform name from the bootstrapped voice platform names list
- Add an MRD by choosing an MRD from the available MRD list
- Can add multiple form fields to add the configurations for the relevant voice platform
- Add a switch to enable/disable that platform
like the image
AGENT DESK
When the agent desk will load up, it will
- load voice platform settings forms from the unified-admin API
- Map an MRDId with a voice platform based on these settings, (MRD to Voice platform) mapping.
- get the relevant voice platform configurations based on these settings
When the agent desk will receive the agent presence from the agent manager, the agent presence will have the list of MRDs for that agent, it will
- Check if any MRD exists that is being used for any voice platform on the basis of the (MRD to Voice platform) mapping, it stores.
If yes, it will
- Target the relevant library of that voice platform
- Pass the relevant configurations to the library
- Login to that voice platform and creates a connection
When the agent needs to close a channel session, the channel session contains an MRD, it will
- Check if that MRD is associated with any voice platform based on (MRD to Voice platform) mapping
If yes, it will
- Send a command to the relevant voice platform to close the call leg
- Send call_leg_ended CIM message to CCM
NOTE: For now, these settings on the unified admin will place in the environment variables of the agent desk, agent desk will create and load these settings internally
How will the libraries Embed/Integrate into the Agent desk?
Cisco service, teams service, free-switch, and all the new incoming voice platform services in the future will act as a middleware service that will subscribe and sends and receive commands to the relevant library. All the voice-related implementations will exist in the Voice service which will process all the voice events and contains common functionality, will manage all the voice actions and decisions, so in the future, if we add any new voice platform then we only need to add a middleware service for that platform but the voice service remains the same.