PureConnect

 View Only

Discussion Thread View

What is the correct way to watch the interactions in a conference?

  • 1.  What is the correct way to watch the interactions in a conference?

    Posted 12-05-2017 23:58
    I have a watcher that is watching MyInteractions and I am able to store the interaction object in my cookie... Everything works fine as expected. However, when a conference is created, it seems that the parties that are in the conference are not longer watched since they probably no longer owned by me. So if I want to mute/unmute or hold/unhold a single party in the conference, my queue won't be aware of that change. What is the correct way to watch all parties in a conference? Here is how I watch my queue protected void WatchMyInteractions() { var interactionManager = GetInteractionManager(); QueueId queueId = new QueueId(QueueType.MyInteractions, "my-username"); InteractionQueue _interactionQueue = new InteractionQueue(interactionManager, queueId); // Individual interaction and conference interaction adds/removes/changes can be received, // as an alternative to the "batching" of QueueContentsChanged. // (If there is a QueueContentsChanged event handler, then the individual added/removed/changed events will not be fired.) _interactionQueue.InteractionAdded += QueueInteractionAdded; _interactionQueue.InteractionChanged += QueueInteractionChanged; _interactionQueue.InteractionRemoved += QueueInteractionRemoved; _interactionQueue.ConferenceInteractionAdded += QueueConferenceAdded; _interactionQueue.ConferenceInteractionChanged += QueueConferenceChanged; _interactionQueue.ConferenceInteractionRemoved += QueueConferenceRemoved; _interactionQueue.LostRights += QueueLostRights; _interactionQueue.StartWatching(GetAttributes()); } protected string[] GetAttributes() { return string[] { InteractionAttributeName.CallIdKey, InteractionAttributeName.InteractionId, InteractionAttributeName.InteractionType, InteractionAttributeName.RemoteAddress, InteractionAttributeName.RemoteName, InteractionAttributeName.RemoteId, InteractionAttributeName.State, InteractionAttributeName.Direction, InteractionAttributeName.StateDescription, InteractionAttributeName.Capabilities, InteractionAttributeName.Muted, InteractionAttributeName.ConferenceId, InteractionAttributeName.CallType, InteractionAttributeName.Recorders, InteractionAttributeName.SupervisorRecorders, InteractionAttributeName.LocalId, InteractionAttributeName.LocalName, InteractionAttributeName.StationQueueNames, "Eic_CallState", "Eic_State", "Eic_IRRecordingId", "Eic_ConferenceMembers", }; } This is how I create a conference, the interactionIds are identified using a checkbox. so when the user select more than 1 interactionId, I send these Ids to the server. public JsonpResult MakeConference(IEnumerable


Need Help finding something?

Check out the Genesys Knowledge Network - your all-in-one access point for Genesys resources