社区
C#
帖子详情
C# 拨打电话
tansuozhev
2011-07-16 10:12:23
现在有一台笔记本,一条电话线,可以通过调制解调打电话,我想用C#实现自动拨打电话,,求教这方面的知识。
...全文
228
10
打赏
收藏
C# 拨打电话
现在有一台笔记本,一条电话线,可以通过调制解调打电话,我想用C#实现自动拨打电话,,求教这方面的知识。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
小志
2011-07-22
打赏
举报
回复
主要是这个方法:public int DialTelphone(string number) 实现拨号。
InitializeTapi3();//初始化TAPI的一些设置
小志
2011-07-22
打赏
举报
回复
下面的代码汲及到我的一些业务处理,仔细研究后提取你需要的代码:
using System;
using TAPI3Lib;
using GZITMS.SysCommon;
using GZITMS.TEL.UI;
namespace GZITMS.TEL.Business {
/// <summary>
/// TAPITelphone 的摘要说明。
/// </summary>
public class TAPITelphone {
private const int mtAudio = 8;
private const int mtModem = 16;
private delegate void CloseResource();
private CallForm callForm;
private TAPIClass tapiObj;
private ITBasicCallControl newCall;
private int regResult;
private ITAddress modemAddr;
public ITAddress ModemAddress {
get { return modemAddr; }
}
public TAPITelphone(CallForm form) {
callForm = form;
}
public void InitializeTapi3() {
try {
tapiObj = new TAPIClass();
int mediaTypes = 0;
tapiObj.Initialize();
ITCollection addrCollection = (ITCollection)tapiObj.Addresses;
ITMediaSupport mediaSupport;
foreach(ITAddress addr in addrCollection) {
if(addr.State == ADDRESS_STATE.AS_INSERVICE) {
mediaSupport = (ITMediaSupport)addr;
mediaTypes = mediaSupport.MediaTypes;
if((mediaTypes & mtModem) == mtModem) {
if((mediaTypes & mtAudio) == mtAudio) {
modemAddr = addr;
break;
}
}
}
}
tapiObj.ITTAPIEventNotification_Event_Event += new ITTAPIEventNotification_EventEventHandler(tapiObj_ITTAPIEventNotification_Event_Event);
if(null != modemAddr) {
regResult = tapiObj.RegisterCallNotifications(modemAddr,true,true,TapiConstants.TAPIMEDIATYPE_AUDIO,2);
}
tapiObj.EventFilter = (int)(TAPI_EVENT.TE_CALLSTATE);
} catch(Exception ex) {
Global.mainLog.Error("初始化Modem出错",ex);
}
}
private void tapiObj_ITTAPIEventNotification_Event_Event(TAPI_EVENT TapiEvent, object pEvent) {
try {
switch(TapiEvent) {
case TAPI_EVENT.TE_CALLSTATE :
ITCallStateEvent icse = (ITCallStateEvent)pEvent;
ITCallInfo ici = icse.Call;
switch(ici.CallState) {
case CALL_STATE.CS_DISCONNECTED :
if(null != callForm) {
callForm.BeginInvoke(new CloseResource(HandUpTelphone));
}
break;
}
break;
}
} catch(Exception ex) {
Global.mainLog.Error("ITTAPIEventNotification_Event出错",ex);
}
}
public int DialTelphone(string number) {
int type = 0;
try {
if(null == tapiObj) {
InitializeTapi3();
}
if(null == modemAddr) {
if(null != callForm) {
callForm.Close();
callForm.Dispose();
}
return type;
}
newCall = modemAddr.CreateCall(number,TapiConstants.LINEADDRESSTYPE_PHONENUMBER,
TapiConstants.TAPIMEDIATYPE_DATAMODEM);
newCall.Connect(false);
type = 1;
} catch(Exception ex) {
Global.mainLog.Error("通过Modem拨打电话出错",ex);
}
return type;
}
public void HandUpTelphone() {
try {
if(null != newCall) {
newCall.Disconnect(DISCONNECT_CODE.DC_NORMAL);
newCall = null;
}
modemAddr = null;
if(null != tapiObj) {
tapiObj.UnregisterNotifications(regResult);
tapiObj.Shutdown();
tapiObj = null;
}
if(null != callForm) {
callForm.State = PhoneState.HangUp;
callForm.Close();
callForm.Dispose();
}
} catch(Exception ex) {
Global.mainLog.Error("挂断电话出错",ex);
}
}
}
}
小志
2011-07-22
打赏
举报
回复
google搜索TAPI 拨打电话,很多例子
tansuozhev
2011-07-18
打赏
举报
回复
有没有谁能提供一些serialport类的信息,来拨打电话,简明扼要,网上很多不明白
hackerqi
2011-07-17
打赏
举报
回复
要有modem的二次开放文档,API什么的,底层调用他的驱动
lizhibin11
2011-07-17
打赏
举报
回复
ATD**********
心灵彩虹
2011-07-17
打赏
举报
回复
http://download.csdn.net/source/1678676
龟叔啊
2011-07-17
打赏
举报
回复
顶 学习中!
tansuozhev
2011-07-17
打赏
举报
回复
能再说详细一些吗?
菲儿
2011-07-17
打赏
举报
回复
坐等。。。更详细的解答~
http://www.henhaozhao.com
c#
CF
拨
打电话
[DllImport("phone.dll")] private static extern IntPtr PhoneMakeCall(ref PhoneMakeCallInfo ppmci); /// /// Dials the specified phone number. /// /// <param name="PhoneNumber">Phone number to ...
C#
TAPI
拨
电话
通过TAPI实现
拨
打电话
功能 注册TAPI * 将 Interop.TAPI3Lib.dll拷贝到windows/system32文件夹下 * 开始->运行regsvr32 tapi3.dll,提示注册成功后可以运行程序
C#
零基础入门课程
零基础
C#
入门课程旨在帮助编程小白从零开始掌握
C#
语言的基础知识和编程技能。课程主要包括以下几个方面:
C#
语言简介与开发环境搭建:介绍
C#
语言的特点、应用场景和优势,并教授如何搭建
C#
开发环境,选择和使用常用...
开源sip协议 linphone
C#
多account register 接
打电话
开源sip协议 linphone
C#
多account register 接
打电话
C#
电话本 控制台应用程序 软件项目课程设计
C#
电话本 控制台应用程序 软件项目课程设计 1.文件破坏处理, 若文件破坏则重新初始化 2.管理员账号保存,一个电话簿文件中内置管理员账号,一一对应。删除电话簿必须正确输入管理员账号。//管理员为第【0】条记录 ...
C#
110,539
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章