According to the manual:
Get reason codes corresponding to the current status of the agent from all media types. Reason codes can be obtained only for the following agent statuses: LoggedIn, AfterCallWork, NotReadyForNextCall, WaitForNextCall.
This is correct for:
[ExtendedCurrentStatus]
Category = CurrentState
MainMask = *
Objects = Agent
Subject = DNAction
With formulas:
Result = G.GetAgentNonVoiceStatus(Data.Current_Status_Email.Value, 'email');
Result = G.GetAgentVoiceStatus(Data.Current_Status_Voice.Value, 'voice');
If you use this stat it will also show your own custom reasons: (no formula needed)
[ExtendedCurrentStatusReasons]
Category = CurrentStateReasons
MainMask = *
Objects = Agent
Subject = DNAction
Edit:How I use it currently, with explanation as I see this is a FAQ on this forum.
[ExtendedCurrentStatusReasons]
Category = CurrentStateReasons
MainMask = *
ReasonStartOverridesStatusStart = yes
Objects = Agent
Subject = DNAction
To show agent status reason we need to create the following:
- Statistic in Stat Server: [ExtendedCurrentStatus] and [ExtendedCurrentStatusReasons]
- Statistic in Pulse that refers to [ExtendedCurrentStatus] and [ExtendedCurrentStatusReasons]
- Formula that refers to created Pulse statistic [ExtendedCurrentStatus] --> must refer to Alias name and must be present in that template. (Check the box for Hide Statistic on this one)
Two different formula's and Alias' are required to differentiate Voice (calls) and Non-Voice (email)
The filters EMAIL_MEDIA and VoiceCall need to be applied to the Statistic in Pulse.
Which are:
Result = G.GetAgentNonVoiceStatus(Data.Current_Status_Email.Value, 'email');
Result = G.GetAgentVoiceStatus(Data.Current_Status_Voice.Value, 'voice');
I hope this makes sense...