電話のアクティビティを監視するプログラムを作成する必要があります。番号や名前など、通話に関する情報を取得します。私は TAPI コードと C# に強いわけではないので、誰かが私を助けてくれることを願っています。
通話が着信したときに、使用可能なデバイスを検出し、それらのデバイスから情報を取得しようとする次のコードがあります。
using System;
using TAPI3Lib;
using JulMar.Atapi;
namespace ConsoleApp1
{
class Program
{
private void tapi_ITTAPIEventNotification_Event(TAPI_EVENT TapiEvent, object pEvent)
{
try
{
ITCallNotificationEvent cn = pEvent as ITCallNotificationEvent;
if(cn.Call.CallState == CALL_STATE.CS_CONNECTED)
{
string calledidname = cn.Call.get_CallInfoString(CALLINFO_STRING.CIS_CALLEDIDNAME);
Console.WriteLine("Called ID Name " + calledidname);
string callednumber = cn.Call.get_CallInfoString(CALLINFO_STRING.CIS_CALLEDIDNUMBER);
Console.WriteLine("Called Number " + callednumber);
string calleridname = cn.Call.get_CallInfoString(CALLINFO_STRING.CIS_CALLERIDNAME);
Console.WriteLine("Caller ID Name " + calleridname);
string callernumber = cn.Call.get_CallInfoString(CALLINFO_STRING.CIS_CALLERIDNUMBER);
Console.WriteLine("Caller Number " + callernumber);
}
}
catch(Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
static void Main(string[] args)
{
TapiManager mgr = new TapiManager("ConsoleApp1");
mgr.Initialize();
foreach(TapiLine line in mgr.Lines)
{
foreach (string s in line.Capabilities.AvailableDeviceClasses)
Console.WriteLine("{0} - {1}", line.Name, s);
}
}
}
}
しかし、実行すると、使用可能なデバイスが表示されますが、通話に関する情報は表示されません。私はJavaでのプログラミングに慣れているので、メインで呼び出し情報を取得するメソッドを呼び出すために送信する必要があると思いますが、それを行う方法と、私が見たコードではわかりません。ですから、TAPI がどのように機能するか、およびコードを機能させるために何ができるかを理解するのを手伝ってくれることを願っています。