Author Message
Khush
Joined: Jun 10, 2016
Messages: 55
Offline
Hi,

I have couple of queries:

1.I am using SelectiveListeningRetrieve and SelectiveListeningHold, would that be using TSAPI advanced license?
As per the documentation https://www.devconnectprogram.com/site/global/products_resources/avaya_aura_application_enablement_services/support/faq/tsapi/licensing.gsp#100

2. If I keep the above 2 methods but do not invoke them in my code will I still be using TSAPI Advanced licenses? how is licensing utilized if SelectiveListeningRetrieve and SelectiveListeningHold is used or not used from a code perspective?

3. Is there a way to get agent state in a callback monitored by some event and its response? In SDK I only see that getAgentState is available but response only when the query is made not like continuous event that can be monitored and receives a callback response.

Thanks




JohnBiggs
Joined: Jun 20, 2005
Messages: 1139
Location: Rural, Virginia
Offline
1) yes SelectiveListeningRetrieve/Hold, require a TSAPI advanced license?
2) consumed (allocated) on first invocation (request received by AES). Released when AES is rebooted. It being present in your code but that code segment not being executed will not consume the TSAPI Advanced License.
3) agent state information is only available via polling. This is by design and unlikely to change in the future.
Khush
Joined: Jun 10, 2016
Messages: 55
Offline
Thanks John!

Is it possible if we can pro-grammatically query for the license type?
JohnBiggs
Joined: Jun 20, 2005
Messages: 1139
Location: Rural, Virginia
Offline
outside of trying the operation and seeing it fail - no. The error code is not the clearest, but there is one for that case. I forget exactly what the response is though I **think** it is GENERIC_SUBSCRIBED_RESOURCE_AVAILABILITY
Khush
Joined: Jun 10, 2016
Messages: 55
Offline
Using the DMCC sdk can we retrieve meta data?
• startTime
• endTime
• acceptTime
• totalHoldDuration
• longestHoldDuration
• agentInteractionDuration (e.g. talk time)
• numberOfHolds
• enqueueTime
• queue
• recordingLocation
• initiationMethod (Inbound, Outbound, Transfer)


Would this require Advanced license orbasic?

Thanks
JohnBiggs
Joined: Jun 20, 2005
Messages: 1139
Location: Rural, Virginia
Offline
you can calculate or derive the majority of those items. The AES APIs do not give it to you in that format.
You might consider using CMS (Call Management System) and getting aggregated information per agent via its reporting mechanism. Off hand I don't know if CMS can give you per call reports with this granularity, nor if it can provide all of the metrics (# of holds, longest hold, and total hold time, is suspect to me).

I can't make a determination about these items
• queue
• recordingLocation

I don't know what you expect for them.
Calls may queue at multiple splits - you would know which splits a call queued at from a monitor on the inbound VDN.
If another party joins the call it may or may not be a recorder Communication Manager/ AE Services / DMCC does not know 'what' joined, only that another extension joined. Additionally, some forms of recording do not trigger call related events (e.g. Multiple registrations per device, and passive taps).
Khush
Joined: Jun 10, 2016
Messages: 55
Offline
Thanks John!

Can we get the details of call when the PBX receives and PBX makes decision to assign which agent, this is before it arrives to the agent?

Also split streaming of Audio in Stereo mode how is it possible? Does that feature require advanced or basic license?

Does SelectiveStreamRequest require advanced license?

Regards
JohnBiggs
Joined: Jun 20, 2005
Messages: 1139
Location: Rural, Virginia
Offline
Can we get the details of call when the PBX receives and PBX makes decision to assign which agent, this is before it arrives to the agent?

Most calls are routed through a VDN (Vector Directory Number)). You can place a MonitorCallsViaDevice monitor on a VDN and receive notification that a call is in vector processing. This is prior to agent selection... the call could be routed to a skill by the associated vector, and an agent be available in that skill and the call be delivered to that agent microseconds later, so you won't get much time to do anything with this prior knowledge. You could insert a wait step in the vector to delay the distribution of the call to allow the application time to do some work.

Also split streaming of Audio in Stereo mode how is it possible? Does that feature require advanced or basic license?

There are two techniques.. a historical one utilizing SelectiveListenHold functionality which is enabled via a TSAPI Advanced license, and a newer technique provided by AES/CM 8.0.1 which only requires DMCC Basic licensing (although you probably also want TSAPI Basic licensing to get meta data for the calls). The latter technique is described in the DMCC Programmer's Guide. See the section on "Custom Media Streams"

Does SelectiveStreamRequest require advanced license? no.
Khush
Joined: Jun 10, 2016
Messages: 55
Offline
How can I monitor the landing VDN before it arrives at the agent using the DMCC api?
JohnBiggs
Joined: Jun 20, 2005
Messages: 1139
Location: Rural, Virginia
Offline
I will have to ask an associate for the specific method, but I believe in DMCC they collapsed MonitorCallsViaDevice under the MonitorDevice() service. Of course you also have to setup a listener for those events.
Khush
Joined: Jun 10, 2016
Messages: 55
Offline
getThirdPartyCallController.StartMonitor ?

Did not find Monitor Device.
Khush
Joined: Jun 10, 2016
Messages: 55
Offline
Hi John,

How to monitor the vdn ?
Did not find the method you mentioned.

Thanks
MartinFlynn
Joined: Nov 30, 2009
Messages: 1922
Online
Which SDK are you using (Java, .Net, XML)?

Martin
Khush
Joined: Jun 10, 2016
Messages: 55
Offline
.Net
MartinFlynn
Joined: Nov 30, 2009
Messages: 1922
Online
MonitorCallsViaDevice is very similar to a normal Call Control monitor. It involves basically the same steps:

1. Define your callback methods. e.g.

void getThirdPartyCallController_OnDeliveredEvent(object sender,
ThirdPartyCallController.DeliveredEventEventArgs e)
{
// Handle the event
}

2. Register your callbacks e.g.

ServiceProvider.getThirdPartyCallController.OnDeliveredEvent += new
DeliveredEventHandler(getThirdPartyCallController_OnDeliveredEvent);

3. Start the monitor. e.g.

void startMonitor(String vdnIDAsString)
{
ThirdPartyCallController.ThirdPartyCallsViaDeviceCallControlEvents
evts =
new
ThirdPartyCallController.ThirdPartyCallsViaDeviceCallCotrolEvents(true);
evts.DeliveredEvent = true;

serviceProvider.getThirdPartyCallController.StartMonitor(vdnIDAsString, events, null);
}

vdnIDAsString must be a DeviceID or ThirdPartyDeviceID for the VDN in String format.

I would suggest that you use the DMCC Dashboard to setup a monitor and then perform various call flows. That way, you will get to see which events you can expect at the different stages of the calls.

Martin
Go to:   
Mobile view