Developing an Interactive Client (IC) Addin, The Beginners Guide

There are two types of applications you can develop for Interaction Client: a plugin and an addin. A plugin, inherently from its name, is an application that will plug itself into the client itself and will be able to modify its behavior. An addin, on the other hand, will be loaded by IC when it starts and can run in the background utilizing the client. Here, I will only give an example of basics of creating an addin.

Before diving into this post further, you have to have I3 telephony system installed on your network and I3 SDK and Interaction Client installed on your local machine, of course.

First of all things, an addin is a DLL so, when you create a new solution in Visual Studio, choose Class Library as your project type. Once you got the solution created, rename your Class1.cs to whatever you want to call it and add a reference to ININ.InteractionClient.Addin. Inherit your class from QueueMonitor class and override OnLoad method.

At this point, you want to start instantiating other I3 SDK objects, depending on your needs, that will provide you with further functionality.

Below is a simple example of how this works.

using ININ.InteractionClient.AddIn;

namespace MyAddinNamespace
{
	public class MyAddin : QueueMonitor
	{

		private BackgroundWorker Worker { get; set; }

		public MyAddin()
		{
			this.Worker = new BackgroundWorker();
			this.Worker.DoWork += this.Worker_DoWork;
		}

		private void Worker_DoWork(object sender, DoWorkEventArgs e)
		{
			// Utilize I3 SDK here to create objects, subscribe to events, etc.
		}

		protected override void OnLoad(IServiceProvider serviceProvider)
		{
			this.SessionWorker.RunWorkerAsync();
		}

	}
}

This is a very beginner’s quick reference and I welcome questions considering lack of documentation from I3 🙂

This entry was posted in I3 / Interactive Intelligence and tagged , , , , , , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *