Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Tapi在C#中建立固定电话_C#_.net_Modem_Phone Call_Tapi - Fatal编程技术网

使用Tapi在C#中建立固定电话

使用Tapi在C#中建立固定电话,c#,.net,modem,phone-call,tapi,C#,.net,Modem,Phone Call,Tapi,我一直在尝试使用C#制作一个呼叫应用程序,它使我能够通过带有调制解调器的PC拨打固定电话。我找到了ATAPI和TAPI,但到目前为止,我无法与这些库打电话。有人能给我打电话和聊天的示例代码吗? 到目前为止,我已设法找到调制解调器,但我无法接收来电号码或应答,也无法拨打完整的电话(通话和接收数据) 使用系统; 使用System.Collections.Generic; 使用System.Linq; 使用系统文本; 使用System.Threading.Tasks; 使用System.IO.Port

我一直在尝试使用C#制作一个呼叫应用程序,它使我能够通过带有调制解调器的PC拨打固定电话。我找到了ATAPI和TAPI,但到目前为止,我无法与这些库打电话。有人能给我打电话和聊天的示例代码吗? 到目前为止,我已设法找到调制解调器,但我无法接收来电号码或应答,也无法拨打完整的电话(通话和接收数据)

使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
使用System.IO.Ports;
使用JulMar.Atapi;
命名空间公司x_Libaray
{
班级计划
{
公共静态void Main()
{
TapiManager a=新的TapiManager(“测试”);
a、 初始化();
String modem=“Conexant USB CX93010 ACF modem”;
TapiLine li=null;
TapiLine[]l=a.线;
foreach(l中的TapiLine线)
{
Console.WriteLine(line.ToString());
if(line.ToString().Equals(调制解调器))
{
li=直线;
打破
}
}
li.Open(MediaModes.DataModem);
//li.Ringing+=新事件处理程序(li_Ringing);
//li.CallInfo更改+=新事件处理程序(li_CallInfo更改);
//li.Changed+=新事件处理程序(li_Changed);
li.NewCall+=li_NewCall;
}
静态void li_NewCall(对象发送方,NewCallEventArgs e)
{
Console.WriteLine(e.Call.CalledName);
Console.WriteLine(e.Call.CalledId);
Console.WriteLine(e.Call.CallerId);
Console.WriteLine(e.Call.CallerName);
Console.WriteLine(如Call.CallData);
控制台写入线(如呼叫地址);
Console.WriteLine(如Call.ConnecteId);
Console.WriteLine(如Call.ConnectedName);
Console.WriteLine(即Call.RelatedId);
控制台写入线(如Call.Id);
Console.WriteLine(e.Call.CallOrigin);
}
}
}

如果您对拨号命令感兴趣,应执行以下步骤:-

  • 找到线路
  • 以支持的模式打开该行
  • 执行MakeCall命令

    li.MakeCall(拨号号码)


您尝试的代码是什么?你遇到了什么错误?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO.Ports;
using JulMar.Atapi;

namespace CompanyX_Libaray
{
    class Program
    {
        public static void Main()
        {
            TapiManager a = new TapiManager("test");
            a.Initialize();
            String modem = "Conexant USB CX93010 ACF Modem";
            TapiLine li=null;
            TapiLine[] l = a.Lines;
            foreach (TapiLine line in l)
            {
                Console.WriteLine(line.ToString());
                if (line.ToString().Equals(modem))
                {
                    li = line;
                    break;
                }
            }
            li.Open(MediaModes.DataModem);
            //li.Ringing += new EventHandler<RingEventArgs>(li_Ringing);
            //li.CallInfoChanged += new EventHandler<CallInfoChangeEventArgs>(li_CallInfoChanged);
            //li.Changed += new EventHandler<LineInfoChangeEventArgs>(li_Changed);
            li.NewCall += li_NewCall;
        }
        static void li_NewCall(object sender, NewCallEventArgs e)
        {
            Console.WriteLine(e.Call.CalledName);
            Console.WriteLine(e.Call.CalledId);
            Console.WriteLine(e.Call.CallerId);
            Console.WriteLine(e.Call.CallerName);
            Console.WriteLine(e.Call.CallData);
            Console.WriteLine(e.Call.Address);
            Console.WriteLine(e.Call.ConnectedId);
            Console.WriteLine(e.Call.ConnectedName);
            Console.WriteLine(e.Call.RelatedId);
            Console.WriteLine(e.Call.Id);
            Console.WriteLine(e.Call.CallOrigin);
        }
    }
}