有用过语音卡的人么

上海程序员3 2011-03-20 03:38:28
问下有电话进来的时候,怎么接电话,电话机直接操作吗,还是软件上要发个命令给哪个电话接??
...全文
235 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
joel5635 2011-08-27
  • 打赏
  • 举报
回复
十分感谢 2-3楼的哥们!
chainallchainall 2011-06-21
  • 打赏
  • 举报
回复
哥公司就是做CallCenter的 这方面的玩意儿都研究了11年了 详情加Q1572526188
chainallchainall 2011-06-21
  • 打赏
  • 举报
回复
两种方式都可以
monkchen 2011-04-06
  • 打赏
  • 举报
回复
哥给你回答,哥用的是杭州三汇SHT系列的模拟语音卡,

语音卡分坐席模块和外线模块,顾名思义,坐席模块就是分出电话线给话务员的,外线就是连接市话线

如果有人打电话来,外线模块会收到信号,此时你可以用SDK函数(Pickup)接电话,如果你要把电话转到坐席,要给坐席发响铃信号,话务员如果要接电话,需要像传统方式一样摘机拿起话筒,当然这也不是唯一的方式。

大体这样吧。

上海程序员3 2011-03-20
  • 打赏
  • 举报
回复
我只是问如何接电话,你发那么多,好像一个都不是我要的答案!
Winola 2011-03-20
  • 打赏
  • 举报
回复
三、事件与消息
1、procedure OnConnect(const sHost:WideString);
说明:当客户端与服务器连接成功后,会产生这个事件。
参数:sHost:连接上的服务器的IP地址或者是域名。
注:如果连接成功后,中途网络断了,或者是录音服务程序关闭,客户端会自动去连接
服务器,一旦网络通了,或者是服务器起来了,客户端连接上后,也会产生一个这样
的事件。

2、procedure OnDisConnect(const sHost:WideString);
说明:当客户端与服务器的连接中断后,会产生这个事件。
参数:sHost:服务器的IP地址或者是域名。
注:如果连接成功后,中途网络断了,或者是录音服务程序关闭,均会产生该事件,用
户可以根据这个消息来判断网络连接是否正常。

3、procedure OnCallIn(const sLocalNum: WideString; const sCallInNum: WideString);
说明:当有电话打入时,OCX控件会自动产生该事件,并传递相应参数。
参数:sLocalNum:本地号码,即本地振铃的电话号码,此号码是在录音服务器上设置好的。
sCallInNum:来电号码,即来电显示的号码。
注:此事件是在电话的第一次振铃与第二次振铃之间产生,且电话必须申请来电显示功能。
可以在这个事件下根据来电号码查找客户资料。

4、procedure OnCallOut(const sLocalNum: WideString; const sCallOutNum: WideString);
说明:摘机打出时,每按一个键就会产生一个事件,并且传递打出的号码。
参数:sLocalNum:本地号码,即本地振铃的电话号码,此号码是在录音服务器上设置好的。
sCallOutNum:拨出去的电话号码。
注:可以在这个事件下查找客户资料,每接收一次,就可以从数据库中查找一次客户资料。

5、procedure OnRecFile(const sLocalNum,sRecFile,sDateTime: WideString; const iIO,iLen:Integer; sRemoteNum:WoidString);
说明:当打出或者打入电话,本地电话挂机后,就会产生这个事件,并且传递录音文件的名称。
参数:sLocalNum:本地号码,即本地振铃的电话号码,此号码是在录音服务器上设置好的。
sRecFile:录音文件名称,此名称包括了文件的目录与文件名,命名格式为:
“C:\TMNData\20070708\66668888\P-113912-I-0006-1234567890-S.Dat”
|______| |______| |_|____| | |__| |________| |
A B C D E F G H
说明:A:表示日期,由8位字符组成,格式是"YYYYMMDD",分别表示年月日;
B:本地号码,字符数量不定,所以建议服务器端设置本地号码时不要包含“\”字样;
C:由2个字符组成,表示当前文件的语音压缩格式,
"P-"表示2倍压缩的DIALOGIC ADPCM压缩格式;
"V-"表示2倍压缩的IMA ADPCM压缩格式;
"Q-"表示4倍压缩的ADPCM格式;
"G-"或者没有字符标志则表示GSM格式。
D:通话开始时间,由6个字符组成,格式是"HHNNSS",分别表示时分秒;
E:通话方向,一个字符长度,"O"表示打出,"I"表示打入;
F:通话时长,由4个字符组成,时长不够4位的以字符"0"填充,单位是秒;
G:对方号码,长度不定,视实际来电情况为准;
H:谁先挂机,"S"本地先挂机,"R"对方先挂机,此功能只有数字电话录音才生效。
sDateTime:录音开始时间,格式是“YYYY-MM-DD HH:NN:SS”。
iIO:主被叫方向,0表示打出,1表示打入。
iLen:通话时长,单位秒。
sRemoteNum:对方号码,打入电话表示来电显示号码,打出号码表示拨打的对方号码。
注:收到录音文件名后,可以保存到数据库中,便于以后回放用。
如果通话结束后没有产生该事件,请检测服务器的配置,比如录音时段限制、通话时
长限制等。
5.1、procedure OnRecFile1(const sLocalNum,sRecFile,sDateTime: WideString; const iIO,iLen:Integer; sRemoteNum:WoidString;
cosnt iHangup:Integer; const sPID:WideString);
说明:此函数的功能与参数与OnRecFile的一样。
参数:iHangup:0表示自己先挂机,1表示对方先挂机
sPID:通话唯一ID表示,字符串型。

6、procedure OnLeaveMessage((const sLocalNum,sLMFile,sDateTime: WideString; const iLen:Integer; sRemoteNum:WoidString);
说明:留言事件,留言结束后,会产生此事件,并传递相应参数。
参数:sLocalNum:本地号码,即本地振铃的电话号码,此号码是在录音服务器上设置好的。
sLMFile:详细参数说明请参照“OnRecFile”事件中的“sRecFile”的参数说明.
sDateTime:录音开始时间,格式是“YYYY-MM-DD HH:NN:SS”。
iLen:通话时长,单位秒。
sRemoteNum:对方号码,即来电显示号码。

7、procedure OnNoAnswer(const sLocalNum:WideString; const sCallID:WideString);
说明:当有电话打入,且无人接听的情况,即未接来电信息。
参数:sLocalNum:本地号码。
sCallID:未接来电号码。
注:此来电号码在OnCallIn事件中也会发送过来,但是不同的是,只有当来电无人接听时
才会产生OnNoAnswer事件。

8、Procedure OnFilePlayEnd;
说明:当文件播放结束后,会产生此消息。
参数:无

9、Procedure OnHookOff(const sLocalNum:WidString; const sTime:WideString);
说明:本地电话摘机时,会产生此消息。
参数:sLocalNum:本地号码。
sTime:摘机的时间,格式是“YYYY-MM-DD HH:NN:SS”。

10、Procedure OnHookOn(const sLocalNum:WidString; const sTime:WideString);
说明:本地电话挂机时,会产生此消息。
参数:sLocalNum:本地号码。
sTime:挂机的时间,格式是“YYYY-MM-DD HH:NN:SS”。

11、Procedure OnRing(const sLocalNum:WidString; const sTime:WideString);
说明:当有电话打入,本地电话振铃时,会产生此消息,只有第一次振铃才会产生一个这样的消息。
参数:sLocalNum:本地号码。
sTime:振铃的时间,格式是“YYYY-MM-DD HH:NN:SS”。
注:根据此函数,可以记录电话在摘机接听前的振铃等待时间长度。可以设置一个变量用来存储第一次
振铃的时间,如果电话已经接听,可以根据OnHookOff事件的时间计算出接听前等待时长;如果电话
未接听,可以根据OnNoAnswer事件产生的时间来计算未接电话振铃时长。

12、Procedur OnPlayClick(var sHost:WidString; var sFile: WideString);
说明:当点击控件上的播放按钮(三角形的按钮),会产生此事件,目的是方便用户自己指定需要播放的
录音文件。在未连接上服务器时,也可以通过此事件来播放。比如可以在这个事件里面去用户的
数据库里面查找需要的信息,然后付给sHost与sFile就可以了。
参数:sHost:字符型变量,用来指定需要播放的文件存在的服务器,可以是IP地址,也可以是域名;
sFile:服务器上的录音文件,包括全路进与文件名。

13、procedure OnFaxFinished(sLocalNum, sRemoteNum: String; iIO: Integer; sDateTime, sFile: String; iResult: Integer);
说明:接收传真或者发送传真完成时,会产生此消息。
参数:sLocalNum:收到传真的本地号码;
sRemoteNum:传真来电号码或者是传真发送的号码;
iIO:1表示收到传真、0表示发送传真
sDateTime:开始接收传真的时间,格式是“YYYY-MM-DD HH:NN:SS”;
sFaxFile:收到或者发送的传真文件保存的文件名(含绝对路径)。
iResult:传真发送结果情况,取值为:0成功 1对方忙音 2对方无人接听 3传真发送中途出错

14、procedure OnFlashTransOut(sLocalNum, sTransToNum, sCallID: WideString);
说明:来电接通后,按Flash键转外部电话,此功能在有企业内部交换机的情况下很有用。
参数:sLocalNum:当前正在接电话的本地电话号码;
sTransToNum:正在转接到的分机号码;
sCallID:当前电话机上的来电显示号码。
举例:075589801560客户来电到801分机后,然后801分机按Flash键后转815分机,系统就会收到此转接事件。
收到的事件参数是:FlashTransOut(801,815,075589801560);
Winola 2011-03-20
  • 打赏
  • 举报
回复
7、EC_PlayPause;
说明:暂停播放,如果需要继续播放,只要再次调用次函数就可以了。
参数:无

8、EC_PlayStop;
说明:停止当前正在播放的录音。
参数:无。

9、EC_PlayGetPosition:DWORD;
说明:获取当前正在播放文件的位置,返回值范围为0-10000;
参数:无。

10、EC_PlaySetPosition(iPos:DWORD):Boolean;
说明:设置播放位置。
参数:播放位置取值范围0..1000。

11、function EC_PlayFile1(const sHost, sChName, sFile: WideString):Boolean;
说明:通过座席话机播放录音文件,此函数只适合呼叫中心系统使用
参数:sHost:呼叫中心系统服务器的IP地址或者域名。
sChName:用来听录音文件的座席通道的名称。
sFile:是服务器上的录音文件名,必须包括文件的存储路径与文件名。此参数的来源
主要是OnRecFile事件收到的RecFile文件名。
返回值:True表示成功,False表示失败

12、function EC_PlayStop1(const sHost, sChName: WideString):Boolean;
说明:停止通过座席话机播放录音文件,此函数只适合呼叫中心系统使用
参数:sHost:呼叫中心系统服务器的IP地址或者域名。
sChName:用来听录音文件的座席通道的名称。
返回值:True表示成功,False表示失败

13、function EC_StartMonitor(const iCh:Integer):Boolean;
说明:开始实时监听指定通道的通话声音,实时监听用到的放音设备是操作系统默认
的放音设备。
iCh:监听的通道,取值范围0-255,分别表示监听第1路到第256路,注意,如果这个
函数连续重复调用,后一次调用后,会自动关闭前一次的调用,也就是说,实际
听到的声音是最后一次调用的通道声音。
返回值:True表示成功,False表示失败

14、Procedure EC_StopMonitor;
说明:停止实时监听,此函数不需要参数。

15、function EC_SetLoginInfo(const sUserCode,sPassword: WideString):Boolean;
说明:此函数是电话屏蔽系统用来设置每个电话使用人的用户编号与密码,在电话屏蔽
系统中,如果服务端设置只有登录后才可以拨打电话,那么只有采用此函数设置
了用户名的用户才可以拨打电话。
参数:sUserCode:登录用户名,建议只采用数字字符,因为电话机端登录时只能输入数字字符。
sPassword:登录密码,建议只采用数字字符,因为电话机端登录时只能输入数字字符。
返回值:True表示成功,False表示失败

16、function EC_SetLimitedTel(const sUserCode,sTelNum: WideString):Boolean;
说明:电话屏蔽系统中,用来设置指定电话号码只允许哪些用户编号可以拨打。
参数:sUserCode:用来指定哪些用户编号可以拨打TelNum指定的号码,可以同时设置多个用户
编号,多个用户编号之间用都好“,”进行隔开,如果此参数为空表示不限制此电
话号码。
sTelNum:指明此函数设置的电话号码。
返回值:True表示成功,False表示失败
举例:
1、EC_SetLimitedTel('1001,1002,1006','88886666'),此函数设置后,只允
许1001与1002与1006这3个编码的用户拨打'8888666'这个电话号码,其他编号的
用户如果拨打'88886666'这个号码就会被阻断,达到屏蔽的效果。
2、EC_SetLimitedTel('','88886666'),设置后,任何用户编号都可以拨打'88886666'这
个电话号码,达到撤销屏蔽指定电话号码的效果。

17、function EC_SoftDialOut(const sPhoneNumFrom,sPhoneNumTo: WideString):Boolean;
说明:软件拨号函数,用来实现外呼功能。
参数:sPhoneNumFrom:坐席电话号码,外呼时,指定本地内线坐席号码振铃;
sPhoneNumTo:被呼叫的电话号码。
返回值:True表示成功,False表示失败

18、function EC_StopSoftDialOut(const sPhoneNumFrom: WideString):Boolean;
说明:停止正在进行的拨号。
参数:sPhoneNumFrom:正在振铃的电话号码。
返回值:True表示成功,False表示失败

19、function EC_SoftSendFax(const sLocalNum, sRemoteNum, sFile: WideString; bIsTiffFile:Boolean): WideString;
说明:发送传真;
参数:sLocalNum:需要用来发送传真的外线通道名称,如果为空,则表示让系统自己寻找空闲的传真专用通道;
sRemoteNum:接收传真的电话号码,即对方传真号码;
sFile:需要发送的文件,可以是Text、word、excel、bmp等任意格式的文件,但必须要服务器具有相
应格式文件的打开环境,且文件不能加密,否则将会造成传真失败;
bIsTiffFile:发送的传真文件是否为直接tiff传真格式文件;
返回值:字符型返回,返回长度为一个字节,则表示失败,失败代码是:
1:系统没有传真资源;
2:指定的通道名称不存在;
3:传真文件发送到服务器失败,请检查服务器的是否设置了磁盘,或者是空间是否足够;
4:服务器转换传真文件成tiff格式失败;
如果返回值长度大于一字节的,则表示调用成功,成功返回的是传真文件在服
务器上存储的文件名,可作为唯一的传真ID标识。

20、function EC_DownLoadFaxFile(const sFileName, sSaveTo: WideString):Boolean;
说明:从服务器上下载传真文件用。
参数:sFileName:是服务器上的传真文件名,必须包括文件的存储路径与文件名,下载传
真文件前,需要先调用EC_Connect函数登录语音服务器。
sSaveTo:将文件保存到客户端本地的位置,也必须包括文件路径与文件名。
返回值:True表示成功,False表示失败

21、function EC_DownLoadFaxFileEx(const sHost,sFileName, sSaveTo: WideString):Boolean;
说明:从指定语音服务器上下载传真文件用,下载传真文件时,可以不用先调
用EC_Connect登录语音服务器,可以在任何时间调用此函数用来下载文件。
参数:sHost:语音服务器的IP地址或者域名。
sFileName:是服务器上的录音文件名,必须包括文件的存储路径与文件名。
sSaveTo:将文件保存到客户端本地的位置,也必须包括文件路径与文件名。
返回值:True表示成功,False表示失败

22、function EC_FileConvertToTiffFile(const sFromFile, sToTiffFile: WideString): Bool;
说明:转换任意格式的文件到tiff传真文件格式,可以是Text、word、excel、bmp等任意格式的文件,但
必须要服务器具有相应格式文件的打开环境,且文件不能加密,否则将会造成传真失败;
参数:sFromFile:需要转换的文件,包括绝对路径与文件名;
sToTiffFile:转换后的tiff格式文件存储的文件名,包括绝对路径;
返回值:True表示成功,False表示失败
注意:此功能执行时需要连接到传真服务器,因为整个转换过程时在服务器上完成的。

23、function EC_CancelSendFax(const sFaxFileName: WideString): Bool;
说明:取消正在排队等待发送的传真;
参数:sFaxFileName:队列中的传真文件名,取值是由EC_SoftSendFax函数返回的传真文件名
返回值:True表示成功,False表示失败
注意:如果传真正在发送,或者是已经发送完毕后,调用后会返回失败,如果传真正在排队,
这会取消排队,并且会删除服务器上相应的传真tiff文件。

24、function TTMNC_OCXX.EC_SetRecDisk(const sDisk: WideString): WordBool;
说明:设置录音文件保存的磁盘;
参数:sDisk是一个包含所有需要用来录音的磁盘字符串,格式如"D:E:F:",这个串表示录
音保存到D盘、E盘、F盘
返回值:True表示成功,False表示失败

25、function TTMNC_OCXX.EC_DeleteFile(const sFile: WideString): Bool;
说明:删除录音服务器上的指定的录音文件;
参数:sFile:需要删除的文件,包括绝对路径与文件名;
返回值:True表示成功,False表示失败

26、function TTMNC_OCXX.EC_SetChannelDesc(iCh: Integer; const sDesc: WideString): WordBool;
说明:设置指定通道的名称描述;
参数:iCh:需要修改的通道序列号,取值范围0-255,分别表示监听第1路到第256路;
sDesc:通道名称,字符串,可以是数字,也可以是字母、汉字等等;
返回值:True表示成功,False表示失败

27、function TTMNC_OCXX.EC_SetRecMode(iCh, iMode: Integer): WordBool;
说明:设置指定通道的录音模式;
参数:iCh:需要修改的通道序列号,取值范围0-255,分别表示监听第1路到第256路;
iMode:录音模式,取值:0来去都录 1只录来电 2只录去电 3不录音
返回值:True表示成功,False表示失败


Winola 2011-03-20
  • 打赏
  • 举报
回复
操作语音卡,一般都有对应的SDK
就我个人操作的语音卡,开发完成后,结合厂商提供的SDK,写了一个简单的使用说明手册
(由于大一时的作品,写的文档不规范。还请见谅)1、OCX控件的手动注册办法:RegSvr32 TMNC_OCX.ocx
2、录音服务器端必须要安装Ver4.0及以上版本的录音服务程序。

此ocx控件是电话录音系统的客户端第三方软件开发接口用的,具体使用如下:

一、OCX控件的GUID:
GUID={E94560D6-0ADA-4303-83C3-1FC615519DC3}

二、函数与方法:
1、function EC_Connect(const sHost: WideString):Boolean;
说明:此函数是其他函数与方法调用的前提,用来与录音服务器建立连接用。
参数:sHost是录音服务器IP地址或者是服务器的域名,与服务器连接的有3个端口,
分别是9090、9091与9094,所以要确保客户端端能通过这3个端口在连接
时不会受阻拦,所以要注意防火墙的设置。
返回值:True表示成功,False表示失败

2、procedure EC_DisConnect;
说明:用来断开与服务器的连接。
参数:无。

3、function EC_DownLoadFile(const sFileName, sSaveTo: WideString):Boolean;
说明:从服务器上下载录音文件用。
参数:sFileName:是服务器上的录音文件名,必须包括文件的存储路径与文件名,下载录
音文件前,需要先调用EC_Connect函数登录录音服务器。
sSaveTo:将文件保存到客户端本地的位置,也必须包括文件路径与文件名。
返回值:True表示成功,False表示失败
注:下载完成后的录音文件是wav格式的,可以用windows自带的播放器进行播放。

4、function EC_DownLoadFileEx(const sHost,sFileName, sSaveTo: WideString):Boolean;
说明:从指定录音服务器上下载录音文件用,下载录音文件时,可以不用先调
用EC_Connect登录录音服务器,可以在任何时间调用此函数用来下载文件。
参数:sHost:录音服务器的IP地址或者域名。
sFileName:是服务器上的录音文件名,必须包括文件的存储路径与文件名。
sSaveTo:将文件保存到客户端本地的位置,也必须包括文件路径与文件名。
返回值:True表示成功,False表示失败
注:下载完成后的录音文件是wav格式的,可以用windows自带的播放器进行播放。

5、function EC_PlayFile(const sFile: WideString):Boolean;
说明:播放录音文件,播放录音文件前,需要先调用EC_Connect函数登录录音服务器。
参数:sFile:是服务器上的录音文件名,必须包括文件的存储路径与文件名。此参数的来源
主要是OnRecFile事件收到的RecFile文件名。
返回值:True表示成功,False表示失败

6、function EC_PlayFileEx(const sHost,sFile: WideString):Boolean;
说明:播放指定录音服务器上的录音文件,播放文件时,可以不用先EC_Connect录音服
务器,可以在任何时间调用此函数用来播放文件。
参数:sHost:录音服务器的IP地址或者域名。
sFile:是服务器上的录音文件名,必须包括文件的存储路径与文件名。此参数的来源
主要是OnRecFile事件收到的RecFile文件名。
返回值:True表示成功,False表示失败

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧