使用Embedded VC++开发通讯终端及代码分析

Embeded Device开发指南

  • 开发工具
    Embedded Visual C++ 4.0 + SP4
    Visual Studio.net 2005
    相应的SDK
  • 开发类库/方式
    Windows API开发
    MFC开发

电话通讯处理

使用TAPI获得呼叫信息要经过如下步骤: 初始化线路、确定TAPI版本号、对指定线路进行监控、电话呼入时获得呼叫信息并分析、符合条件挂断电话、释放对线路的监控。

为了使用TAPI函数集,必须要包含tapi.h头文件及cellcore.lib库。

初始化TAPI,注册回调函数,并得到Line的数量

1.初始化线路  TAPI
LONG lineInitialize(
LPHLINEAPP lphLineApp, //线路TAPI应用的句柄指针
HINSTANCE hInstance, //实例句柄
LINECALLBACK lpfnCallback, //指向呼叫返回处理函数
LPCWSTR lpszAppName, // 指向用户提供的应用程序名字符串
LPDWORD lpdwNumDevs ); //指向可供使用的线路设备个数

lineInitialize完成对TAPI的初始化后,所有的事件都是通过lpfnCallback指向的回调函数传递给应用程序。回调函数的原型为:

VOID FAR PASCAL lineCallbackFunc(

DWORD hDevice, //可以是一个线路设备的句柄

DWORD dwMsg, //线路或呼叫消息

DWORD dwCallbackInstance,//传回应用程序的回调实例数据

DWORD dwParam1, //消息―具体的数据

DWORD dwParam2, //消息―具体的数据

DWORD dwParam3 //消息―具体的数据

);

 

 

2.确定TAPI版本号

使用lineNegotiateAPIVersion函数把API使用版本通知给TAPI,返回与TAPI通信所能使用的版本,同时获得线路设备支持的扩展功能。

3. 对线路进行监控

使用lineOpen函数打开线路,并指出是对线路的语音监控。
lineOpen: 打开Line(一般是两条线)

 

if ( lineNegotiateAPIVersion( LineApp, i, 0x00010000, 0x00020000, &ver,
&extensionID ) == 0 )
{
rc = lineOpen( LineApp, i, &LineHandles[i], ver, 0, (DWORD)this,
LINECALLPRIVILEGE_MONITOR, LINEMEDIAMODE_INTERACTIVEVOICE, NULL);
}

 

4. 电话呼入时获得呼叫信息并分析

跟踪呼入电话进入回调函数的消息,即dwMsg值,分别为:

①dwMsg = LINE_APPNEWCALL 有呼叫进来

②dwMsg = LINE_CALLSTATE 呼叫状态

        dwParam1 = LINECALLSTATE_OFFERING 此时引起一个响铃

③dwMsg = LINE_CALLINFO 呼叫信息

        dwParam1 = LINECALLINFOSTATE_ORIGIN 呼叫原始信息

④dwMsg = LINE_CALLINFO 呼叫信息

        dwParam1 = LINECALLINFOSTATE_CALLERID 呼叫标识 可在这里处理归属地查询等等操作

 

绘图时避免闪烁(1)

减少绘制区域

绘图时避免闪烁(2)
采用双缓冲 原理:先将不同部分的内容绘制到内存DC中,然后再一
次性的绘制到设备DC上

你可能感兴趣的:(代码,开发,embedded,终端,通讯)