您的位置:首页 > 其它

让你的网页自动显示电话来电号码并录音---免费下载来电显示ActiveX控件(OCX)

2009-08-01 15:01 387 查看


开发原码(JavaScript):

<HTML>
<TITLE>JDComPort JavaScript Sample</TITLE>
<HEAD>

<object classid="clsid:C4751F74-C039-4272-8532-11F7ACBAD184"
name="JDComPort1"
Width="32"
height="32"
>
</object>

<script language="JavaScript">

//函数与方法

function AddInfo(sInf)
{

document.getElementById("mbox").value = "/r" +sInf +document.getElementById("mbox").value;
}

function Open()
{
JDComPort1.Open();
}

function Close()
{
JDComPort1.Close();
}

function SetState()
{
JDComPort1.SetSate();
}

function SetupPorts()
{
JDComPort1.SetupPorts();
}

function ClearmBox()
{
document.getElementById("mbox").value = "";
}

//事件与消息

//按键事件
function OnKeyPress(key,devid)
{
document.getElementById("Key_Dev").value =devid+ ":"+key;
AddInfo(devid+":"+key);
}

//来电事件
function OnRead(s,t,devid,wavefile)
{
document.getElementById("CallerID").value =devid+ ":"+ s +" "+ wavefile;
AddInfo(devid+ ":"+ s +" "+ wavefile);
}

function OnOpen()
{
AddInfo("Open");
}

function OnClose()
{
AddInfo("Close");
}
</script>

<script language="JavaScript">
JDComPort1.attachEvent("OnClose",OnClose);
JDComPort1.attachEvent("OnKeyPress",OnKeyPress);
JDComPort1.attachEvent("OnRead",OnRead);
JDComPort1.attachEvent("OnOpen",OnOpen);
</script>

</HEAD>

<BODY><center>

<FORM ACTION="#" NAME="forms">
<table width="100%" border="1" cellpadding="0" cellspacing="0" onload height="330">
<tr>
<td width="9%" height="30"><center><h3>JDComPort.OCX 控件来电实例 </h3></center></td>
</tr>
<tr>
<td width="9%" height="30"><center>
来电
<INPUT TYPE=text SIZE=52 NAME="CallerID" >
按键
<INPUT TYPE=text SIZE=10 NAME="Key_Dev">

</center></td>
</tr>
<tr>
<td width="9%" height="30"><center>
消息窗口<br>
<textarea name="mbox" cols="80" rows="10">
</textarea>
</center></td>
</tr>
<tr>
<td width="9%" height="30"><center>
<INPUT TYPE=button VALUE="系统设置" ONCLICK="SetState()" NAME="Button1">
<INPUT TYPE=button VALUE="查找设备" ONCLICK="SetupPorts()" NAME="Button4">
<INPUT TYPE=button VALUE="打开设备" ONCLICK="Open()" NAME="OpenDev">
<INPUT TYPE=button VALUE="关闭设备" ONCLICK="Close()" NAME="Button11">
<INPUT TYPE=button VALUE="清除显示" ONCLICK="ClearmBox()" NAME="MsClear">
</center></td>
</tr>
</table>
</FORM></center>
</BODY>
</HTML>

控件的名称

JDComPort.ocx

需要的文件 qtintf.dll

下载控件包: JDComPort.rar

注册控件

1 将文件 JDComPort.ocx qtintf.dll 复制到Windows的system32目录

2、OCX控件的手动注册办法:在运行窗口运行 RegSvr32 JDComPort.ocx

如果不把文件JDComPort.ocx qtintf.dll复制到 system32目录也可以这样注册

在运行窗口运行 RegSvr32 "Path/JDComPort.ocx"

其中Path是文件JDComPort.ocx qtintf.dll所在的文件夹

使用前的准备

如果是USB接口的设备请确保驱动程序已经安装,如果你没有驱动程序,可以用一下链接下载:
http://www.kosen.com.cn/download/drivers/USBDRIVE.rar
使用方法

一、OCX控件的GUID:

GUID={C4751F74-C039-4272-8532-11F7ACBAD184}

二、控件的属性

1、 port: widestring

来电设备与电脑连接的端口 字符串型 如"COM1"、"COM2"、"COM3"、"COM4"、"COM5" ....

3、 baudrate:

波特率只3种选择 br9600, br115200, br460800

以上2个属性一般不用设定,在我们的控件里有一个方法查找设备(SetupPorts),可以把连接到电脑的设备找到,而且可以把找到的参数自动保存下来,以后再调用时会自动装入

3、 connected: Boolean

设备是否打开 如果打开返回 True 否则 False

本属性是只读的

三、函数与方法:

1、 procedure Open

作用:打开设备

说明:此函数是其他函数与方法调用的前提,用来打开与电脑连接的设备,只有在设备被打开后才可以进行其他的操作。

参数:无

其它关联事项:判断一个设备是否打开可以用属性 connected 如果为TRUE则已经打开;多次打开不影响设备的相关操作。

2、procedure Close

作用:关闭设备

说明:用来断开电脑与设备的连接。在退出程序前应关闭设备

参数:无。

3、function SetupPorts: WideString;

说明:查找设备,查找与电脑连接的设备

参数:无

返回值:取消查找或找不到设备返回空串。找到设备"Ports=AAAA BaudRate=BBBB"

其中AAAA是串口的列表 如COM2,COM4 它们之间用逗号分开

BBBB是串口的波特率代号 如7,13,它们之间用逗号分开(7=br9600 13=br115200 0=不如60800)

注:找到设备时 AAAA 与 BBBB会被自动保存到与应用程序同名的ini文件中,在下次被调用时自动调入。

4、procedure SetSate;

说明:用来设定系统状态字

参数:无

返回值:无

注:状态字被自动保存到与应用程序同名的ini文件中,在下次被调用时自动调入。

5、function StartWaveIn(chanl: Integer; const WaveFile: WideString): WideString;

说明:强制录音开始

参数:chanl:通道号 通道1-4 的chanl值为0-3,

对于单口设备chanl的值永远是0

对于双口设备chanl的值只有 0 、1

对于双口设备chanl的值有 0 、1、2、3

WaveFile:录音文件的文件名,如果文件名是个空字符串,则系统会自动生成文件名,如果是合法的文件名,则系统会以给出的文件名生产录音文件

返回值:实际的录音文件名。如果文件名是空的则表示不能进行录音。如果已经开始录音了则返回实际的录音文件名。

注:在一般情况下,不用调用本函数。在默认的情况下,控件会进行自动录音如果是打进的电话,摘机后1秒开始自动录音。打出的电话在播出3个电话号码后的6秒开始录音,在录音开始时会有事件发生。

在未摘机的情况下,本函数失效。

本函数适用 JD-230X JD-250X JD-260X 系列产品

6、procedure StopWaveIn(chanl: Integer);

说明:停止通道chanl的录音

参数:chanl:通道号 通道1-4 的chanl值为0-3,

对于单口设备chanl的值永远是0

对于双口设备chanl的值只有 0 、1

对于双口设备chanl的值有 0 、1、2、3

7、procedure SetHandUp(isHandup: Integer; chanl: Integer);

说明:设定通道chanl摘机或挂机

参数:isHandup: 摘机或挂机 1--摘机 0--挂机

chanl:通道号 通道1-4 的chanl值为0-3,

对于单口设备chanl的值永远是0

对于双口设备chanl的值只有 0 、1

对于双口设备chanl的值有 0 、1、2、3

注:本过程只适用于JD-250X和JD-260X系列的产品

8、procedure PlayWaveFile(WaveFile: WideString; chanl: Integer);

说明:在指定通道按文件播放语音

参数:WaveFile: 录音文件 数据格式为 8位数据 1通道 采样率4800/秒

chanl:通道号 通道1-4 的chanl值为0-3,

对于单口设备chanl的值永远是0

对于双口设备chanl的值只有 0 、1

对于双口设备chanl的值有 0 、1、2、3

注:本过程只JD-260X系列的产品

9、procedure PlayWaveByte(wavebyte: Smallint; chanl: Integer);

说明:在指定通道按字节播放语音

参数:wavebyte: 语音的采样值 数据格式为 8位数据 1通道 采样率4800/秒

chanl:通道号 通道1-4 的chanl值为0-3,

对于单口设备chanl的值永远是0

对于双口设备chanl的值只有 0 、1

对于双口设备chanl的值有 0 、1、2、3

注:本过程只JD-260X系列的产品

10、procedure PlayWaveData(WData: OleVariant; chanl: Integer);

说明:在指定通道按字节流播放语音

参数:WData: 语音的采样流 数据格式为 8位数据 1通道 采样率4800/秒

chanl:通道号 通道1-4 的chanl值为0-3,

对于单口设备chanl的值永远是0

对于双口设备chanl的值只有 0 、1

对于双口设备chanl的值有 0 、1、2、3

注:本过程只JD-260X系列的产品

11、procedure playWaveabort(chanl: Integer);

说明:在指定通道停止播放语音数据

参数:chanl:通道号 通道1-4 的chanl值为0-3,

对于单口设备chanl的值永远是0

对于双口设备chanl的值只有 0 、1

对于双口设备chanl的值有 0 、1、2、3

注:本过程只JD-260X系列的产品

12、function ReadFactryID: WideString;

说明: 读取设备生产厂商的ID

返回值:厂商的ID

13、function ReadDevID: Integer;

说明: 读取来电管理设备的设备号

返回值:设备号

14、function ReadDevVer: WideString;

说明: 读取来电管理设备的型号和软件版本

返回值:设备的型号和软件版本

15、function LineStatus(chanl: Integer): Integer;

说明: 通道的线路状态

参数:chanl:通道号 通道1-4 的chanl值为0-3,

对于单口设备chanl的值永远是0

对于双口设备chanl的值只有 0 、1

对于双口设备chanl的值有 0 、1、2、3

返回值:线路状态 0--摘机 255--挂机

16、function DialupChanl(const TeleNo: WideString; chanl: Integer): Integer;

说明:回拨电话

参数:TeleNo:电话号码

chanl:通道号 通道1-4 的chanl值为0-3,

对于单口设备chanl的值永远是0

对于双口设备chanl的值只有 0 、1

对于双口设备chanl的值有 0 、1、2、3

返回值:没有意义

注:电话号码的长度不要超过16个字节,超过16字节的建议一个一个地拨号,2个号码之间的延时要大于200ms

四、事件与消息

1、 procedure OnRead(const s: WideString; t: Double; const devid: WideString; const WaveFile: WideString)

说明:当有来电显示或开始录音时,会产生这个事件。

参数: s: 来电或拨出的电话号码

t: 发送来电或开始录音的时间 实际是个Date数据类型

devid:设备号每一条线路对应一个设备号如"2-1"和"1-1"分别表示COM2口的第1条线和COM1口的第1条线

WaveFile:录音文件的文件名,如果你不进行录音或你的设备没有录音功能的,可以忽略本参数

2、 procedure OnKeyPress(const key: WideString; const devid: WideString);

说明:当检测到有DTMF按键(电话按键)、电话振铃、摘机或挂机时,会产生这个事件。

参数: key: 电话按键或电话振铃、摘机或挂机

key="R"、"T"、"H" 分表代表电话振铃、摘机和挂机

key="0"、"1"、"2"、"3"...."9"、"*"、"#" 分表代表电话机的对应按键被按下

devid:设备号每一条线路对应一个设备号如"2-1"和"1-1"分别表示COM2口的第1条线和COM1口的第1条线

3、 procedure OnOpen;

一次成功的Open过程会触发一次OnOpen事件

4、 procedure OnClose;

一次成功的Close过程会触发一次OnClose事件

5、 procedure OnWaveIn(wavestring: OleVariant; Count: Integer; const devid: WideString);

说明:当有录音数据被获取时,会产生这个事件。

参数:wavestring:

录音数据,是Byte数组;8位数据 1通道 采样率4800/秒

Count: 数据的长度以Byte计

devid:设备号每一条线路对应一个设备号如"2-1"和"1-1"分别表示COM2口的第1条线和COM1口的第1条线

注:事件主要用于实时监听和用作语音网关

注意:本控件需要高深商公司的"记得"系电脑来电管理器,它适用JD-2000全系列的设备。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: