Can I suppress calls to UII_SessionTransfer?

Mar 16, 2013 at 11:32 PM
Edited Mar 17, 2013 at 8:38 PM
We are optimizing a production release of CCA and are looking to remove as much load as possible when opening a new session. We are calling (IDesktopUserActions).OpenSession and it makes 2 queries to UII_SessionTransfer and then does an update. Is there a configuration, setting or parameter that can suppress this? We do not have CTI integration to session transfer is not needed.
The DesktopBase.EnableSaveSession property may be what I need but it is already false on the OpenSession call. The docs say it is set based on Server Configuration but no more details.
Thanks!
Apr 9, 2013 at 3:33 PM
Hi,

unfortunately i cannot add some value to that specific topic. But could you share the actions you have taken so far to optimize the session creation? I think that would be useful for the whole community.

thanks in advance

regards

niklas
Apr 12, 2013 at 2:35 PM
I second Niklas comments. Anything that people have found to speed up some of the session creation activities would be great.

Jeremy
Apr 12, 2013 at 3:19 PM
Edited Apr 12, 2013 at 3:24 PM
A work around is to override the class in the UII framework for agent state to do nothing. Below is the example.
To use it you will need to update the AIFServiceLoader in the app.config file. This is documented in the UII documents.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Uii.AifServices;
using System.Collections.ObjectModel;
using Microsoft.Uii.Common.Entities;

namespace CustomAgentStateSvc
{
    /// <summary>
    /// Modifies the behavior of the agent state interface service. 
    /// to use,  replace this line in the app.config 
    ///     <add type="Microsoft.Uii.AifServices.AgentStateService,Microsoft.Uii.AifServices"/>
    /// with 
    ///     <add type="CustomAgentStateSvc.AgentStateSvcEX,CustomAgentStateSvc"/>
    /// </summary>

    public class AgentStateSvcEX : AgentStateService
    {
        /// <summary>
        /// Returns session information to assist in handling a transferred call.
        /// </summary>
        /// <param name="toAgentId">To agent id.</param>
        /// <returns>
        /// session information to assist in handling a transferred call.
        /// </returns>
        public override ReadOnlyCollection<SessionTransferRecord> GetSessionTransferInformation(Guid toAgentId)
        {
            // Return null. 
            return null; //base.GetSessionTransferInformation(toAgentId);
        }

        /// <summary>
        /// Places session specific information into the database so that when a
        /// agent transfers a call to another agent
        /// </summary>
        /// <param name="toAgentId">To agent id.</param>
        /// <param name="fromPhoneNumber">From phone number.</param>
        /// <param name="sessionInformation">The session information.</param>
        public override void SetSessionTransferInformation(Guid toAgentId, string fromPhoneNumber, string sessionInformation)
        {
            // Eat the request. 
            //base.SetSessionTransferInformation(toAgentId, fromPhoneNumber, sessionInformation);
        }
    }
}
Apr 12, 2013 at 4:56 PM
jjohnson4265 wrote:
A work around is to override the class in the UII framework for agent state to do nothing. Below is the example.
To use it you will need to update the AIFServiceLoader in the app.config file. This is documented in the UII documents.
I need to clarify something here..

This is not a workaround, this is the supported way to extend or alter the behavior of this service in UII.

There are several services like this.
For example if you want to do local caching of hosted applications, you would do the same with the Microsoft.Uii.AifServices.ApplicationService. These behave in a way similar to hosted controls except they are loaded as boot time.

Mattb-msft.