There are a few ways to do this, I normally use the IInteractionManager.
private readonly IInteractionManager interactionManager = null;
...
...
interactionManager = ContainerAccessPoint.Container.Resolve<IInteractionManager>();
interactionManager.InteractionEvent += new EventHandler<EventArgs<IInteraction>>(eventHandler_InteractionEvent);
interactionManager.InteractionCreated += new EventHandler<EventArgs<IInteraction>>(interactionManager__InteractionCreated);
interactionManager.InteractionClosed += new EventHandler<EventArgs<IInteraction>>(eventHandler_InteractionClosed);
..
..
..
/// <summary>
/// Event handler for all Interaction events.
/// </summary>
public void eventHandler_InteractionEvent(object sender, EventArgs<IInteraction> e)
{
try
{
IInteractionVoice interaction = e.Value as IInteractionVoice;
if (interaction == null)
{
log.Info(log_text + "Interaction Is NULL");
return;
}
IMessage eventMsg = interaction.EntrepriseLastInteractionEvent;
if (eventMsg != null)
{