TAPIClass controller = new TAPIClass();
controller.Initialize();
IEnumAddress[] lines = controller.EnumerateAddresses();
foreach (IEnumAddress line in lines)
{
// Code
}
TAPIClass controller = new TAPIClass();
controller.Initialize();
IEnumAddress addressEnum = controller.EnumerateAddresses();
ITAddress address;
uint arg;
addressEnum.Next(1, out address, ref arg);
while (address!= null) {
// Do your code here
addressEnum.Next(1, out address, ref arg);
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//using JulMar.Atapi;
using TAPI3Lib;
namespace CallerMAX
{
public partial class Form1 : Form
{
private string status;
public Form1()
{
InitializeComponent();
// Code starts here
TAPIClass controller = new TAPIClass();
controller.Initialize();
IEnumAddress addressEnum = controller.EnumerateAddresses();
ITAddress address;
uint arg=0;
addressEnum.Next(1, out address, ref arg);
while (address != null)
{
if (address.AddressName.Substring(0, 3) == "AST")
{
// This is the TSP I want to call events on
callnotification cn = new callnotification();
cn.addtolist = new callnotification.listshow(this.status);
controller.ITTAPIEventNotification_Event_Event += new
TAPI3Lib.ITTAPIEventNotification_EventEventHandler(cn.Event);
controller.EventFilter = (int)(TAPI_EVENT.TE_CALLNOTIFICATION |
TAPI_EVENT.TE_DIGITEVENT |
TAPI_EVENT.TE_PHONEEVENT |
TAPI_EVENT.TE_CALLSTATE |
TAPI_EVENT.TE_GENERATEEVENT |
TAPI_EVENT.TE_GATHERDIGITS |
TAPI_EVENT.TE_REQUEST);
break;
}
else
{
addressEnum.Next(1, out address, ref arg);
}
}
}
class callnotification : TAPI3Lib.ITTAPIEventNotification
{
public delegate void listshow(string str);
public listshow addtolist;
public void Event(TAPI3Lib.TAPI_EVENT te, object eobj)
{
switch (te)
{
case TAPI3Lib.TAPI_EVENT.TE_CALLNOTIFICATION:
addtolist("call notification event has occured");
break;
case TAPI3Lib.TAPI_EVENT.TE_DIGITEVENT:
TAPI3Lib.ITDigitDetectionEvent dd =
(TAPI3Lib.ITDigitDetectionEvent)eobj;
addtolist("Dialed digit" + dd.ToString());
break;
case TAPI3Lib.TAPI_EVENT.TE_GENERATEEVENT:
TAPI3Lib.ITDigitGenerationEvent dg =
(TAPI3Lib.ITDigitGenerationEvent)eobj;
MessageBox.Show("digit dialed!");
addtolist("Dialed digit" + dg.ToString());
break;
case TAPI3Lib.TAPI_EVENT.TE_PHONEEVENT:
addtolist("A phone event!");
break;
case TAPI3Lib.TAPI_EVENT.TE_GATHERDIGITS:
addtolist("Gather digit event!");
break;
case TAPI3Lib.TAPI_EVENT.TE_CALLSTATE:
TAPI3Lib.ITCallStateEvent a =
(TAPI3Lib.ITCallStateEvent)eobj;
TAPI3Lib.ITCallInfo b = a.Call;
switch (b.CallState)
{
case TAPI3Lib.CALL_STATE.CS_INPROGRESS:
addtolist("dialing");
break;
case TAPI3Lib.CALL_STATE.CS_CONNECTED:
addtolist("Connected");
break;
case TAPI3Lib.CALL_STATE.CS_DISCONNECTED:
addtolist("Disconnected");
break;
case TAPI3Lib.CALL_STATE.CS_OFFERING:
addtolist("A party wants to communicate with you!");
break;
case TAPI3Lib.CALL_STATE.CS_IDLE:
addtolist("Call is created!");
break;
}
break;
}
}
}
private void Form1_Resize(object sender, EventArgs e)
{
if (FormWindowState.Minimized == WindowState)
{
Hide();
}
}
private void trayIcon_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left && IsHandleCreated)
{
if (FormWindowState.Normal == WindowState)
{
WindowState = FormWindowState.Minimized;
Hide();
}
else
{
Show();
WindowState = FormWindowState.Normal;
BringToFront();
}
}
}
private void restoreToolStripMenuItem_Click(object sender, EventArgs e)
{
if (FormWindowState.Minimized == WindowState)
{
Show();
WindowState = FormWindowState.Normal;
BringToFront();
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Icon.Dispose();
}
private void exitProgramToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}
}
}
Try using EnumerateAddresses() instead?