About Voice Microservices

From Genesys Documentation
Jump to: navigation, search
This topic is part of the manual Voice Microservices Private Edition Guide for version Current of Voice Microservices.

Learn about Voice Microservices and how it works in Private Edition.

Related documentation:

Supported Kubernetes platforms

Voice Microservices are supported on the following Kubernetes platforms:

  • Google Kubernetes Engine (GKE)
  • OpenShift Container Platform (OpenShift)

See the Voice Microservices Release Notes for information about when support was introduced.

Voice Microservices

Voice Microservices is an application cluster that provides the following functionality:

  • Handle incoming voice (SIP) interactions
  • Route voice and digital (IXN) interactions
  • Support outbound interactions
  • Provide events stream for reporting
  • Support agents across regions

Voice Microservices comprises the following microservices:

Voice SIP Cluster Service

The Voice SIP Cluster Service provides the following functionality:

  • Handles SIP signaling by running multiple nodes: each node is tenant-independent and uses a Voice Dial Plan Service to resolve tenant-specific information.
  • N+1 scalable: Each node starts from a predefined configuration file, which is the same for every node in the cloud.
  • Includes a js controller providing traditional services to SIP Server (LCA, HA link), as well as:
    • Publishing TLib events and user data requests for Voice Call State, Voice Orchestration, and Voice Tenant Services.
    • Providing the Rest API to handle TLib requests from a Voice Front End Service.

Voice SIP Proxy Service

The Voice SIP Proxy Service is an intermediate interface among services and the Voice SIP Cluster Service. The Voice SIP Proxy Service provides the following functionality:

  • Balances load of SIP signaling across Voice SIP Cluster Service instances.
  • Processes SIP REGISTER requests and relays them to Voice Registrar Service.

SIP Proxy adds the following URL into the SIP messaging sent to the SBC:

voice-sipproxy.{{k8s-namespace }}.svc.cluster.local 

This is an SRV record created in the K8s DNS when the SIP Proxy Service is deployed. This FQDN depends on the name of a namespace where SIP Proxy Service is deployed.

The DNS used by an SBC is integrated with the K8s DNS service to forward .svc.cluster.local FQDNs K8s DNS.

Voice Tenant Service

The Voice Tenant Service is a core service of the Genesys Multicloud CX platform that serves as an application layer between front-end Genesys Multicloud CX solutions and shared back-end core services in a region.

The Voice Tenant Service instances are dedicated to a tenant of Genesys Multicloud CX platform and provide these main functions: provisioning of tenant resources, such as agents and DNs; routing of interactions within a tenant; execution of outbound campaigns for a tenant; providing call control functionality; participation in authentication workflow for tenant's agents.

Voice Orchestration Service

The Voice Orchestration Service provides the following functionality:

  • Interacts with each Voice Tenant Service.
  • Provides routing instructions to a Voice Front End Service.
  • Provides local routing session states through a storage system.
  • Retrieves Route Points (RP) configuration with URLs and parameters of associated Designer SCXML Application from the Voice Config Service.
  • Dynamically retrieves Applications from Designer Application Server.
  • Compiles Designer Application into a javascript code to be executed with each session.
  • Monitors Redis streams for new interactions from SIP Cluster Service, IXN Service or GWS. Orchestration Services retrieve triggering events in a round-robin fashion, thus new interactions are evenly distributed between Orchestration Nodes.
  • Starts and executes Voice and digital Sessions when triggered by routing events.
  • Reads from Voice RQ Service streams TLib events and user data requests published by Voice SIP Cluster Service.
  • Reads from Voice RQ Service streams Interaction (IXN) events and user data requests published by IXN Service.
  • Delivers call control and user data update requests to a proper Voice SIP Cluster Service node via the Restful API.
  • Delivers new call control requests to a Voice Front End Service via the Restful API.
  • Sends requests to URS via a corresponding Tenant Redis stream as a session requires.
  • Reads from Voice RQ Service streams URS responses and events.
  • Serializes context of sessions into Redis for HA.
  • Recovers sessions from Redis in case of ORS failover and continues session execution from the last state it was serialized.
  • Processes HTTP requests from MCP and sends events back.
  • Provides monitoring and health metrics using the Prometheus API.

Voice Agent State Service

The Voice Agent State Service provides the following functionality:

  • Maintains agent states in a storage system. Recovers agent states from failure and in case of auto-scaling events.
  • Reads agent state requests (RequestAgentLogin, RequestAgentReady, ...) from a Voice Front End Service.
  • Updates agent login sessions (through a Voice Config Service) based on those requests.
  • Generates agent state events according to the TLib model and provides them to a Voice Tenant Service and reporting clients.
  • Reads agent-related interaction events (EventRinging, ...) from a Voice Call State Service and updates agent session accordingly. Provides those events to reporting clients.
  • Reads device notifications (in service/out of service) from a Voice Registrar Service and updates agent states accordingly.
  • Reads agent reservation requests (RequestReserveAgent) from a Voice Front End Service and grants agent reservation to clients.

Voice Call State Service

The Voice Call State Service provides the following functionality:

  • Reads interaction events from a Voice SIP Cluster Service.
  • Reads user data requests from a Voice Front End Service and updates call user data states accordingly.
  • Maintains call-thread states in a storage system.
  • Recovers call-thread states from failure and in case of auto-scaling events.
  • Produces agent-related call events to a Voice Agent State Service.

Voice Dial Plan Service

The Voice Dial Plan Service provides the following functionality:

  • Provides the HTTP interface to the Voice SIP Cluster Service for device type resolution (internal, external) and dial plan execution, including the number translation.
  • Supports Voicemail scenarios.
  • Provides the following information to the SIP Cluster Service:
    • Device contact
    • Agent logged in on the device
    • Options configured on the DN or at Person CME object.

Voice Config Service

The Voice Config Service provides the following functionality:

  • Provides access to tenant configuration data through the Rest API.
  • Provides the Rest API for services to store and access device registration and agent login information.
  • The following services access the configuration:
    • Voice Orchestration Service (for obtaining SCXML application details of a Route Point).
    • Voice SIP Cluster Service (for obtaining details about a tenant trunk and softswitch).
    • Voice Dial Plan Service (for obtaining details about tenants and Dial Plan provisioning).
    • Voice SIP Proxy Service (for obtaining details about tenants).
    • Voice Registrar Service (for saving details about device registration).
    • Voice Agent State Service (for saving details about agent logins).

Voice Registrar Service

The Voice Registrar Service provides the following functionality:

  • Maintains device states by processing SIP REGISTER messages.
  • Stores device registrations through a Voice Config Service.
  • Distributes device notifications (EventDNBackInService, EventDNOutOfService) to a Voice Tenant Service. Device notifications can also be used by a Voice Agent State Service for agent state updates.

Voice Front End Service

The Voice Front End Service provides the following functionality:

  • Delivers call control, user data updates, and distribute event requests to a proper Voice SIP Cluster Service node that handles the call.
  • Writes agent state, agent reservation, DND status requests to a storage system (Kafka topic), consumed by a Voice Agent Service.

Voice Redis Queue Service

The Voice Redis Queue (RQ) Service provides the following functionality:

  • Distributes TLib events for each voice call or digital interaction to a Voice Orchestration Service from other services, such as a Voice SIP Cluster Service and Interaction Service.
  • The Voice RQ Service works as a cluster of nodes, where each node in the cluster accepts client connections and plays primary and backup roles.
  • To interact with the Voice RQ Service, the rq-client library is used by other services that take care of computing the RQ node, to which TLib events are sent.

Voice Voicemail Service

The Voice Voicemail Service is part of the multi-tenant microservice architecture. It provides the following functionality:

  • Provides deposit of voicemail messages to agent and agent group mailboxes.
  • Provides access to voice mailboxes by dialing to a voicemail access number.
  • Uses the Voice Config Service to retrieve agent configuration and states.
  • Stores voicemail recordings and metadata in a storage system.
  • Provisioning is done through Agent Setup.
Retrieved from "https://all.docs.genesys.com/VM/Current/VMPEGuide/Overview (2022-05-27 03:51:38)"