TAPI获得来电消息和来电号码?

masepu masepu 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在写一个可以获得来电消息并能够获得来电号码的程序,通过查找
现在实现了获得来电消息并响应的功能.但如何获得来电号码呀,
网上的代码我试了不行,获得的szPhoneNumber不是来电号码呀.
而且我是通过循环来初始化来电线路的,是不是有更好办法?
全部代码如下:

#include <windows.h>
#include <tapi.h>

DWORD lineHandleCount;
HLINE *lineHandles;
HLINEAPP lineApp;


VOID CALLBACK LineCallback(DWORD hDevice, DWORD dwMsg, DWORD dwCallbackInstance, DWORD dwParam1, DWORD dwParam2, DWORD dwParam3)
{
switch(dwMsg)
{
case LINE_APPNEWCALL: // message of new incall

LINECALLINFO *lpCallInfo; lpCallInfo = (LINECALLINFO *)malloc(sizeof(LINECALLINFO)+1000); memset(lpCallInfo, 0, sizeof(LINECALLINFO)+1000); lpCallInfo->dwTotalSize = sizeof(LINECALLINFO)+1000;
while (1)
{ lineGetCallInfo( (HCALL)hDevice, lpCallInfo);
if (lpCallInfo->dwTotalSize < lpCallInfo->dwNeededSize)
lpCallInfo = (LINECALLINFO *)realloc(lpCallInfo,lpCallInfo->dwNeededSize);
else break;
}
TCHAR szPhoneNumber[30];
lstrcpy(szPhoneNumber,(LPTSTR)((LPSTR)((DWORD)lpCallInfo+(DWORD)lpCallInfo->dwCallerIDOffset)));
free(lpCallInfo);
MessageBox(NULL,szPhoneNumber,szPhoneNumber,MB_OK);
// szPhoneNumber
---- 这就是呼入的电话号码 } } } break;}}

for ( DWORD i=0; i<lineHandleCount; i++ )
lineClose( lineHandles[i]);

delete[] lineHandles;
lineShutdown( lineApp );

break;

case LINE_CALLSTATE: // message of call state changed

switch(dwParam1)

{

case LINECALLSTATE_DISCONNECTED: // 来电挂断
break;

// case ...

// ...

default:

break;

}

// case ......

// ...

default:

break;

}

}
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
//MessageBox(NULL,L"dd",L"DD",MB_OK);

//通过循环来初始化来电线路
while(lineInitialize(&lineApp,hInstance,(LINECALLBACK)LineCallback,L"Video",&lineHandleCount)==0) {

Sleep(100);
lineHandles = new HLINE[lineHandleCount];

for(DWORD i = 0; i < lineHandleCount; i++)
{

int rc;
DWORD ver;
LINEEXTENSIONID extensionID;

if( lineNegotiateAPIVersion( lineApp, i, 0x00010000, 0x00020000, &ver, &extensionID ) == 0 )
{
rc = lineOpen( lineApp,i,&lineHandles[ i ],ver,0,(DWORD)0,LINECALLPRIVILEGE_MONITOR|LINECALLPRIVILEGE_OWNER,LINEMEDIAMODE_INTERACTIVEVOICE,NULL);
}
}

}
}
...全文

相关推荐

WM所有平台来电消息处理

本文将深入探讨"WM所有平台来电消息处理"这一主题,包括如何获取来电消息、接听电话和挂断电话,并且我们将讨论封装成类的实现方式。首先,让我们了解WM平台上的来电消息处理。

c157xigua

65、电话营销与TAPI技术的发展与应用

本文探讨了电话营销的现状与挑战,以及TAPI技术的发展历程和应用。电话营销正面临消费者抵制和法律限制,传统方法已不再有效,而多媒体营销和客户为中心的策略成为趋势。TAPI技术从早期的TAPI 1.3逐步发展到TAPI 3.0,不仅支持传统电话和IP电话的融合,还提供了丰富的功能如媒体流支持、客户端/服务器架构、Active Directory集成等。文章还分析了TAPI技术的应用优势、案例、开发步骤,并展望了其未来的发展方向,包括与人工智能、物联网和区块链的结合,以及服务质量的进一步提升。

五行擒拿术

c#2005实现来电录音

通过TAPI,我们不仅可以获取到主叫号码,还可以控制录音设备开始和停止录音。实现来电录音的主要步骤如下:1.

sevenlover

TAPI_VC.rar_TAPI 拨号程序_tapi_tapi VC_visual c

这个项目可能包含了一个简单的用户界面,用户可以输入电话号码,点击拨号按钮,然后TAPI会处理剩下的拨号过程。同时,它也可能包含了处理来电和其他TAPI事件的示例代码。

四散

电话编程(TAPI)

TAPI为开发者提供了与电话设备和服务交互的接口,使得开发者可以通过调用预定义的函数来完成诸如拨打电话、接听来电、发送传真等功能。

ShanShanYouWen
评论 4
收藏 已收藏
分享
返回顶部
masepu
Windows客户端开发 7,655 成员 18,839 内容