用TAPI实现来电拒接

分享一段自己写的M8能用的自动来电拒接的代码段

void CtestuiDlg::OnBnClickedButton1()
{

if(lineInitialize(&lineApp,theApp.m_hInstance,(LINECALLBACK)LineCallback,L"Video",&lineHandleCount)==0)
{
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_OWNER,LINEMEDIAMODE_INTERACTIVEVOICE,NULL);
}
}
}

}


回调函数如下:

VOID CALLBACK LineCallback(DWORD hDevice, DWORD dwMsg, DWORD dwCallbackInstance, DWORD dwParam1, DWORD dwParam2, DWORD dwParam3)
{//dwMsg是线路消息,dwParam1,dwParam2是具体的事件
lineDrop((HCALL)hDevice,NULL,0);
}

 

TAPI是好东西呀。
在来电的时候COM9会收到“RING”消息,表示有来电,但我不知道如何在这个消息发出的第一时间获取。
LZ可以尝试用TAPI获取消息以后用AT指令查询来电信息。当然,也可以用AT+CHUN这样的指令挂机。
posted @ 2010-04-14 17:41  张兴业  阅读(230)  评论(0编辑  收藏  举报