Author Topic: Help on Interaction sdk for .net  (Read 16919 times)

This topic contains a post which is marked as Best Answer. Press here if you would like to see it.

Arun

  • Guest
Help on Interaction sdk for .net
« on: August 06, 2009, 05:31:20 PM »
Hi All,

I 'm developing one small agent desktop in .Net using interaction sdk services. Please guide me
1. how to restrict a user from logging into one extension if the extension is already used by another agent
2. during transfer need to know the agent status - how to get agent statuses.(Not ready ,Logged out etc..)

cheers
Arun


Offline René

  • Administrator
  • Hero Member
  • *****
  • Posts: 1832
  • Karma: 62
Re: Help on Interaction sdk for .net
« Reply #1 on: August 10, 2009, 01:55:36 PM »
Hi Arun,

[quote]1. how to restrict a user from logging into one extension if the extension is already used by another agent[/quote]

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.

[quote]2. during transfer need to know the agent status - how to get agent statuses.(Not ready ,Logged out etc..)[/quote]

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.

Hope it helps you.
R.

arun

  • Guest
Re: Help on Interaction sdk for .net
« Reply #2 on: August 10, 2009, 07:04:11 PM »
Thanks  Rene...will try out your approach...today

i was trying this : when trying to Login() using agent.Login() we will get mediainfo error and stuck up in processing further :(

i was analyzing the help file ,in that we have  InteractionServerErrorType Enumeration which has error codes like

ALREADY_LOGGED_IN
PLACE_OCCUPIED

can you please let me know whether that would help ?






Arun

  • Guest
Re: Help on Interaction sdk for .net
« Reply #3 on: August 10, 2009, 07:43:42 PM »
Place occupied worked .thanks

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.

Thanks


Offline René

  • Administrator
  • Hero Member
  • *****
  • Posts: 1832
  • Karma: 62
Re: Help on Interaction sdk for .net
« Reply #4 on: August 11, 2009, 07:41:04 AM »
Hi Arun,

[quote]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...[/quote]
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.

[quote]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.[/quote]
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 >:(

R.

Arun

  • Guest
Re: Help on Interaction sdk for .net
« Reply #5 on: August 11, 2009, 11:37:07 AM »
Hi Rene,

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) .


Thanks

Arun

  • Guest
Re: Help on Interaction sdk for .net
« Reply #6 on: August 11, 2009, 07:25:40 PM »
Hi Rene,

I have list of agents, when i try to transfer to an agent who is not logged in.

1.customer call goes on hold.
2. Initiated transfer keeps dialing
till this call is released not able to retrieve the held call.

In GAD - they are prompting the user that Agent is Logged out.

plz suggest

Offline cavagnaro

  • Administrator
  • Hero Member
  • *****
  • Posts: 7639
  • Karma: 56330
Re: Help on Interaction sdk for .net
« Reply #7 on: August 11, 2009, 07:37:30 PM »
??? It is obvious I think you can't transfer to an agent who is not logged in. What you should do is call the extension number.

Arun

  • Guest
Re: Help on Interaction sdk for .net
« Reply #8 on: August 12, 2009, 08:50:06 AM »
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 ....










Offline René

  • Administrator
  • Hero Member
  • *****
  • Posts: 1832
  • Karma: 62
Re: Help on Interaction sdk for .net
« Reply #9 on: August 12, 2009, 10:48:53 AM »
Hi,

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.

[quote]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....[/quote]
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"?

R.

Arun

  • Guest
Re: Help on Interaction sdk for .net
« Reply #10 on: August 12, 2009, 12:27:04 PM »
hi,

i'm using [b]IAgentService in that getAgentsDTO() method and getPersonsDTO() [/b] methods to retrieve the agent  details....

[i][b]Attributes :[/b][/i]

person:lastname
person:firstname
agent:loginIds


strName = Connection.GetStringValue( agent.data, "person:lastname" ) + ", " + Connection.GetStringValue( agent.data, "person:firstname" );
strLoginIDs = (String[])Connection.GetValue( agent.data, "agent:loginIds" );

have mentioned in my earlier post...but didn't highlight may be...Plz let me know whether this is ok...


Offline René

  • Administrator
  • Hero Member
  • *****
  • Posts: 1832
  • Karma: 62
Re: Help on Interaction sdk for .net
« Reply #11 on: August 12, 2009, 01:59:07 PM »
Arun,

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).

R.

Arun

  • Guest
Re: Help on Interaction sdk for .net
« Reply #12 on: August 12, 2009, 02:10:08 PM »
Hi,
Thanks ...will try.
In the previous post you have suggested:

[i]To avoid such behaviour you should enable direct agent calling and route the call to agentid instead of his/her extension number.[/i]

[b]direct agent calling [/b] 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...

Offline René

  • Administrator
  • Hero Member
  • *****
  • Posts: 1832
  • Karma: 62
Re: Help on Interaction sdk for .net
« Reply #13 on: August 12, 2009, 02:27:56 PM »
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.).

R.

Arun

  • Guest
Re: Help on Interaction sdk for .net
« Reply #14 on: August 12, 2009, 04:02:20 PM »
Rene,

"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...