Author Message
JamieChen
Joined: Jul 8, 2008
Messages: 7
Offline
Hi,

I am wondering whether the "Port_Extension" in "Agent" model is meant for the extension he is currently using?

Our call center agents can roam around and they can login to ACD from any station. So I am thinking of using SMS with "Agent" model to see what is the extension # he is currently using. So would like to ask whether this "Port_Extension" is the runtime extension # he is currently using.

Under CM's SAT, there is a command like "list agent-loginid 50001" which will list the extension # agent ID 50001 is currently using. The closet SMS model is "Agent". In case "Port_Extension" is not what I am looking for, could you also advise what SMS model I should use?

Thanks
AnthonyGreway
Joined: Feb 12, 2007
Messages: 0
Offline
Jamie,

Agent is the correct SMS model. The only way I am aware of finding the agent's current station is with a "list agent-loginID" as you mentioned. The Port_Extension is not the correct field to retrieve this data and unfortunately SMS does not support this field on the Agent Model. However, this will be fixed/supported in the AES 4.2.2 service pack release. You will see a new field named "Extension" which will display the agent's current extension in AES 4.2.2 and later.

I apologize for any inconvenience,

Tony
JamieChen
Joined: Jul 8, 2008
Messages: 7
Offline
Thanks. Do you know when is AES 4.2.2 SP release date?
This feature is actually very important for our project here. So I am hoping this SP release will come before we go live with our project here.

JohnBiggs
Joined: Jun 20, 2005
Messages: 1141
Location: Rural, Virginia
Offline
The other way to access this binding is using TSAPI and do a getDeviceInfo query on the AgentID. This will return the associated extension if they are logged in.
JamieChen
Joined: Jul 8, 2008
Messages: 7
Offline
Appreciate John's suggestion. But TSAPI is a C/C++ thing and
everything here is all Java and mixed platform (32 or 64 bits). The use of native machine dependent language will be a problem. Any other suggestions?
JohnBiggs
Joined: Jun 20, 2005
Messages: 1141
Location: Rural, Virginia
Offline
Sorry I should have mentioned JTAPI as a possibility. JTAPI provides most of thesame capabilities as TSAPI.

If you use JTAPI from provider you getAgentTerminal (50001) from that object you getAgents(), from the Agent object you getAgentID which returns the extension of the station the agent is logged in (if any).
JamieChen
Joined: Jul 8, 2008
Messages: 7
Offline
John, I just turned to search JTAPI. Do you mean "javax.telephony.Provider"? Where I didn't see getAgentTerminal(). getAgentTerminal() seems to be defined in the interface javax.telephony.callcenter.events.ACDAddrEv but is marked as deprecated and it doesn't have anyway to let me set the agentID.

Sorry that this is my 1st time to look at JTAPI, if you know some specific Java class for that, I can follow that to find the answer.

Thanks


JohnBiggs
Joined: Jun 20, 2005
Messages: 1141
Location: Rural, Virginia
Offline
yep, sorry I meant "javax.telephony.Provider"
and then I meant getTerminal(50001)
and then getAgents on the terminal object that is returned
and then getAgentID on the agent object that is returned
JamieChen
Joined: Jul 8, 2008
Messages: 7
Offline
John, sorry, still would like to check with you on this.

(Q1) MY goal is to find the Station Extension from a given Agent ID. So our input is Agent ID (50001 in this case). But are we sure, getTerminal(50001) is correct? When I look at the doc, it seems that getTerminal is expecting the station extension not the agent ID 50001.

(Q2) You also meant to say the final "getAgentID" will return the station extension that he logins. This seems to be the reverse of the method name. So would like to confirm with you on this.

Thanks

Jamie
JohnBiggs
Joined: Jun 20, 2005
Messages: 1141
Location: Rural, Virginia
Offline
It works with the JTAPI exerciser.

Many of the JTAPI Terminal and Agent methods are cross fertile. allowing either a station extension or an agentID to be used/returned. I will ask my JTAPI guru to keep me honest tomorrow, but I'm confident it works. It may not be the only way to achieve the goal either.

You could also check with the folks on the JTAPI forum for their opinion.
JamieChen
Joined: Jul 8, 2008
Messages: 7
Offline
Roger that, master. I am getting my hands into JTAPI now. JTAPI here I come......
JamieChen
Joined: Jul 8, 2008
Messages: 7
Offline
Sorry, it's me again for another follow-up question. :=))

Speaking of an environment with multi-CM, multi-AES, where an extension could tie with any individual CM, a more correct implementation of this should be the following:
- Use JtapiPeer.GetServices() to list all CT Link services in this environment.
- For each service from the above return list, get its corresponding Provider instance
- Then iterate through each Provider instance to call getTerminal(50001) until we find a Terminal.

Am I correct in this?

Thanks
JoelEzell
Joined: Nov 15, 2013
Messages: 780
Offline
You've got it!
JohnBiggs
Joined: Jun 20, 2005
Messages: 1141
Location: Rural, Virginia
Offline
Depending on the dial plan arangements, you might find more than one x50001. The implemenation of a Uniform Dialplan is not a given. You should be able to test a Terminal to determine if it is an AgentTerminal (using instanceof) which hopefully eliminates some duplicates.

Further such an approach is subject to what is populated into the security data base (I think), I am not sure if it is accessed until the application sets an observer on a device, although I have vivid recollections of needing the SDB properly populated with extensions to get a list of devices from TSAPI (getDeviceList), so I suspect that the SDB may play a role in your approach, which may or may not be of any benefit to you.

John
JohnBiggs
Joined: Jun 20, 2005
Messages: 1141
Location: Rural, Virginia
Offline
QQ:
Do you know the ACD groups that the agent would be in if they were logged in? You can query the groups and find out the agent IDs of logged in agents and tunnel to the station they have logged in from there.

Further you know you can monitor the ACD groups for logged in/out events.. don't you?

I realize that there is a application startup issue to contend with, but I wonder if your approach is as efficient as it could be.
Go to:   
Mobile view