用PowerBuilder开发来电显示软件
电话是企业与用户联系的主要方式, 怎样快速的得到用户的信息并与企业自身的管理系统结合起来.目前常用的有 两种方式:一是采用 电话语音卡,二是采用 USB接口的来电显示接收盒. 由于语音卡本身价格比较贵,使用也不方便,本文 采用USB来电显示盒来实现.
USB来电显示盒采用北京海风公司的 CID1, 支持1到4路的电话来电显示.特点是采用符合USB 1.1标准, 与电话 线路并联,直接读取电话线上送来的来电号码。
1: 具体的产品驱动程序可以从 http://www.51record.com 下载
2: 来电号码的格式:
对于模拟电话线上的主叫识别信息传送及显示(Calling Identity Delivery,简称CID),目前电信局提供两种方式,即DTMF和FSK。这两种主叫号码都在被叫方未摘机时传送,即在通话建立之前传送。其中DTMF格式主叫号码在第一声振铃之前传送,FSK格式在第一声振铃和第二声振铃之间传送。DTMF方式是在第一次振铃前用DTMF音频传递,特点是发送速度慢、无校验;FSK方式是在第一次和第二次振铃之间传递,特点是发送速度快、有校验。对于FSK方式,若在第一次振铃后马上摘机,就会收不到主叫号码。在某些城市,由于部分电话局未传递主叫号码,造成本地的某些来话收不到主叫。这种情况请咨询你所在的电话局。
对于DTMF方式,一般电话局仅发送主叫号码;而FSK方式,一般发送日期、时间
和主叫号码。
3: PB程序代码
integer i
i=SW_Init()
i=SW_SetType(1)
LineCount=SW_GetCount()
st_5.Text="共"+String(LineCount)+"线"
if (LineCount>0) then
LineCount = LineCount+(-1)
end if
flag1=1
integer i,line
long l1,l2,l3
char buf[16];
String s;
LineCount=SW_GetCount()
for line=0 to LineCount
//收到CID处理
buf=SW_GetStrCID(line)
if (len(buf)>0) then
sle_2.Text = "线"+String(line)+":"+buf
end if
next // end for