Previous Status | New Status |
---|---|
Busy - On Call | N/A |
Busy - On email | N/A |
Busy - Chatting | Available |
Accept Internal Calls | |
Wrapup | Busy - On Break |
Busy - Other | |
Busy - On Break | Busy - On Break |
Busy - Other | |
Available | |
Accept Internal Calls | |
Busy - Other | Busy 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
}