Session Management
A session is a set of related services that are used to deliver an end-user experience.
There is a global logical session that encompasses the Resource Manager interactions with SIP Server. This global session is managed by SIP Server. Within the global session, the Resource Manager manages logical call sessions for specific GVP services, and individual call legs within a call session.
The Resource Manager manages GVP call sessions, as follows:
- The Resource Manager creates a new call session when it receives a new SIP INVITE request for a GVP service.
- The Resource Manager generates a GVP Session ID, and inserts this information in the X-Genesys-GVP-Session-ID SIP extension header. For more information about session IDs, see the section about GVP identifiers in the GVP 8.5 User's Guide.
- The Resource Manager maps the session to an IVR Profile (a voice or call-control application) and identifies the type of service for each component session (call leg). For more information, see Service Selection.
- In multi-tenant environments, before mapping the session to an IVR Profile, the Resource Manager first checks the resource from which the request originated. If the resource is one that is managed by this specific Resource Manager, and it is a gateway resource, the Resource Manager determines which tenant owns the gateway resource and proceeds to map the IVR Profile. For more information, see Service Selection.
- The Resource Manager adds the following parameters to the X-Genesys-GVP-Session-ID header:
- gvp.rm.datanodes To identify itself as the Resource Manager for the session. In GVP 9.0, it is used mainly to configure cluster information. When Resource Manager is in stand-alone mode, the value is node-id=1. When Resource Manager is clustered, either member of the cluster can have a value of node-id=1|2 (primary) or node-id=2|1 (secondary), depending on its current status.
- gvp.rm.cti-call To identify a call that is routed through the Computer Telephony Integration Connector (CTIC). In GVP 9.0, the value of this parameter is set to 1 to invoke a CTI service.
- gvp.rm.tenant-id To identify the voice or call-control application under which the session is executed. The value of this parameter is the name of the IVR Profile that was assigned when the profile was configured. For more information about IVR Profile IDs, see the section about GVP identifiers in the GVP 8.5 User's Guide.
- The Resource Manager inserts the X-Genesys-GVP-Session-ID header when it forwards new SIP INVITE requests. The Resource Manager also adds the X-Genesys-GVP-Session-ID header when it forwards responses, if the header does not already exist in the response.
- The Resource Manager inserts the X-Genesys-RM-Application-dbid header when it forwards the first SIP INVITE request to a GVP resource, to identify the IVR Profile under which the session is executed. The value of this parameter is the Database Identifier (DBID) that Configuration Server assigned for the IVR Profile object.
The GVP components need this information to log the IVR Profile DBID in the call-detail records (CDR) that they send to the Reporting Server. - When the Resource Manager receives a SIP INVITE request for a new call leg within an existing session (as identified by the X-Genesys-GVP-Session-ID header), it consults the policies of the IVR Profile and tenant related to the existing session, to determine whether the call leg can be created. For more information, see Policy Enforcement.
If the Resource Manager cannot identify an existing session from the X-Genesys-GVP-Session-ID header (for example, because the session has timed out), it accepts and processes the incoming request without checking policies.
- The Resource Manager maintains the session in accordance with configurable session inactivity and session expiration timers.
The Resource Manager associates a session inactivity timer with each call leg, and monitors SIP traffic for the session to determine when a SIP session is stale. If the Resource Manager receives no SIP messages for the call leg within the inactivity interval, it internally cleans up the call leg data (application, tenant, and resource usage) as if a BYE were received.
You can set session inactivity timers for each IVR Profile, for each tenant, for each resource, and for the Resource Manager. For more information, see the section about configuring session timers and timeouts in the
GVP 8.5 User's Guide.
Session-Expires Header
The Resource Manager adds a Session-Expires header to initial INVITE requests if one is not present, and if the request does not contain the timer option in the Supported header. The value of the Session-Expires header is the configured value of the applicable session timer, except under the following conditions:
- If the incoming request contains a Session-Expires header with a value greater than the configured value of the applicable session timer, and if the Min-SE header is also present, the Resource Manager reduces the value of the Session-Expires header to the greater of the Min-SE and configured session timer values.
- If the incoming request contains a Session-Expires header with a value greater than the configured value of the applicable session timer, but the Min-SE header is not present, the Resource Manager reduces the value of the Session-Expires header to the configured session timer value.
- If the incoming request contains a Session-Expires header with a value less than the minimum session expiry value configured for the Resource Manager (in the proxy.sip.min_se parameter), the Resource Manager rejects the request.
- If the incoming request contains a Session-Expires header with a valid value that is less than the configured value of the applicable session timer, the Resource Manager uses the value of the Session-Expires header.
The Resource Manager restarts the session inactivity timer each time that it receives a SIP request or a 200 OK response.