1. how to restrict a user from logging into one extension if the extension is already used by another agent
You can retrieve details about place an agent wants to use using the method “IPlaceService.getPlacesDTO” and check value of the attribute “place:currentAgentId”. If that attribute isn’t empty (or null) than the place is occupied.
2. during transfer need to know the agent status - how to get agent statuses.(Not ready ,Logged out etc..)
I assume you’re using the method “IAgentService.getAgentsDTO” to get list of agent. If you do so then you can get current agent’s status using the attribute “agent:loggedDns”. It is an array of “VoiceMediaInfo” objects holding agent’s status for every DN he/she is logged in.
The second one - retrieving the status during transfer - i’m displaying all the agents from CME with the login ID’s need to capture the status of all agents…
The problem with my previous approach - i’m accessing the mediaInfoError all the time i’m getting the same error ,
“error.agent.LoginFailed”
Please help me out - how to fetch the specific error from InteractionServerErrorType Enumeration.
(or) guide me how to capture other errors like agent already logged in similar to those shown in Genesys Agent Desktop.
The second one - retrieving the status during transfer - i'm displaying all the agents from CME with the login ID's need to capture the status of all agents...
I assume you're using the method "IAgentService.getAgentsDTO" to get list of all agents. Am I right? If not please let me know how you get list of the agents.
The problem with my previous approach - i'm accessing the mediaInfoError all the time i'm getting the same error ,
"error.agent.LoginFailed"
Please help me out - how to fetch the specific error from InteractionServerErrorType Enumeration.
(or) guide me how to capture other errors like agent already logged in similar to those shown in Genesys Agent Desktop.
Enumeration "InteractionServerErrorType" is related to InteractionServer (Multimedia) not to T-Server. I would recommend you to use the way described in my previous post to check if the place is occupied or not.
Error handling when using .Net Interaction Services is a hard job as there is no list/enumeration of possible errors. To be honest I’ve never found acceptable way how to handle it >
yaa i agree…Interactionservererrortype is with respect to Multimedia.
Regarding retrieving the agent details: i’m using agentsDTO and passing this to PersonDTO and retrieving the person attributes
agent:loginIds
person:lastname
person:firstname
when handling voice interaction…during login() we get the voicemediainfo error that is same all the time .
Please suggest how to get the following - for eg - User Logged in Elsewhere on another place (agent Already logged in) .
Hi ,
To check whether agent is already logged in ,i’m using the attribute (agent:currentPlaceId ) in IAgentService…
which returns ID of this agent’s current place. little bit solved..
i noticed one thing when i try to transfer for logged out SIP agents i do get a destination_busy error so that using that event i’m using the re-connect function to get the call back…but for avaya agents i’m not receiving any busy events … keeps dialing…
The approach is - i have list of agents displayed in grid - on selection of a particular agent it will initiate the transfer to that agent.before that i need to check the status …
still trying for the other one to display agent is logged out when initiating transfer…
Plz Suggest …
As Cavagnaro wrote you should not transfer call to logged out agents. Different behaviour on SIP Server and Avaya switch is obvious as these switches handles agent functionality in different way. So SIP Server returns you an error as extension/agent you’d like to reach isn’t available. However, Avaya extension is available even no agent is logged on it so it will ringing for good. To avoid such behaviour you should enable direct agent calling and route the call to agentid instead of his/her extension number.
The approach is - i have list of agents displayed in grid - on selection of a particular agent it will initiate the transfer to that agent.before that i need to check the status ...
still trying for the other one to display agent is logged out when initiating transfer....
I've asked you several time about the method you use to get list of agents and never received the answer. So how can I help you if you do not "co-operate"?
You need to retrieve the attribute “agent:loggedDns” and process returned data. Attribute “agent:loggedDns” is an array of “VoiceMediaInfo” classes. You should check value of the field “status” that contains current agent’s status on particular DN he/she is logged on. In theory, you could just check if the agent is logged or not (agent:loggedDns should be NULL in that case).
Hi,
Thanks …will try.
In the previous post you have suggested:
To avoid such behaviour you should enable direct agent calling and route the call to agentid instead of his/her extension number.
direct agent calling is enabled set to “y” but still it rings …thatz not good for me
Plz let me know what all options i need to cross check to avoid that behaviour…
Haven’t seen Avaya for a while… Maybe somebody else will know what to check and where…
In the meantime you can check T-Server log and ensure that transfer destination is agent’s Id and not the extension. And that T-Server’s option “route-thru-queue” is set to “true”. But be careful if it isn’t and you are going to enabled it as it could have negative impact to your environment (calls not being routed etc.).
“route-thru-queue” is set to “false” but resetting to true will change the work mode to ACW after release …
in our environment - it should be READY - so i can’t go for it…
So, if you want to get an error when dialing to a logged out agent you should dial to the login number, so if agent is not associated to an extension (logged in) then the call will not proceed.
if you want to call something no matter if logged in or not you should dial the extension number and the extension will ring with agent logged in or not.