$customHeader
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

  • This method allows the changing of an agent Status to another Status. 
  • The attempt to execute this method will return an error if attempting to change an Agent's status FROM "busy - On Call" or "Busy - On Email" TO any other status
  • The Attempt to execute this method MAY fail if attempting to change status for an agent who's status is already in the process of transitioning to a conflicting status
  • Status transitions allowed are as follows:
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


  • when attempting to transition an agent Status to  "Busy - Other" The "availability" and the "activity" are optional.
  • The "availability" must be specified if the "activity" is specified.
  • Possible values for status are:
    •  0  (not ready); in this case availability code is assumed 0 and activity String.Empty regardless
    • 16 (available); in this case availability code is assumed 1 and activity String.Empty regardless
    • 17 (accept internal calls); in this case availability code is assumed 2 and activity String.Empty regardless
    • 34 (on break); in this case availability code is assumed 0 and activity String.Empty regardless
    • 36 (other)
  • Other  values submitted for "Status"  are going to be considered not valid and the request will be declined (logged).
  • The supplied availability code and/or activity will be used if and only if the supplied status is 36.
  •  If not specified, they will be assumed 0 and String.Empty respectively.


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

    }


  • No labels