Previous StatusNew Status
Busy - On CallN/A
Busy - On emailN/A
Busy - ChattingAvailable

Accept Internal Calls
WrapupBusy - On Break

Busy - Other
Busy - On BreakBusy - On Break

Busy - Other

Available

Accept Internal Calls
Busy - OtherBusy On Break

Busy - Other

Available

Accept Internal Calls



In order to use this method, you must first be aware of the Agent's current session ID which can be obtained from this method:



Then use this method to change the desired Agent's status:

"processRemoteInCallStatusChangeRequest" within "frmMainWindow"



ChangeAgentStatusResponse TryForceAgentStatusTransition(string sessionId, string targetAgentSessionId, TransferableAgentStatus status, byte availabilityCode, string activityName)

        {

            switch (status)

            {

                case TransferableAgentStatus.Available:

                    return tryForceAgentStatusTransition(sessionId, targetAgentSessionId, CallTransferStatus.Available, 1, String.Empty);

 

                case TransferableAgentStatus.AcceptInternalCalls:

                    return tryForceAgentStatusTransition(sessionId, targetAgentSessionId, CallTransferStatus.AcceptInternalCalls, 2, String.Empty);

 

                case TransferableAgentStatus.OnBreak:

                    return tryForceAgentStatusTransition(sessionId, targetAgentSessionId, CallTransferStatus.BusyOnBreak, 0, String.Empty);

 

                default:

                    return tryForceAgentStatusTransition(sessionId, targetAgentSessionId, CallTransferStatus.BusyOther, availabilityCode, activityName);

            }

        }


ChangeAgentStatusResponse TryForceAgentStatusTransition(string sessionId, string targetAgentSessionId, TransferableAgentStatus status, byte availabilityCode, string activityName)


public enum TransferableAgentStatus

    {

        [EnumMember]

        Available,

 

        [EnumMember]

        AcceptInternalCalls,

 

        [EnumMember]

        OnBreak,

 

        [EnumMember]

        Other

    }