如何在delphi程序中实现来电显示功能?(10分)

  • 主题发起人 主题发起人 reckychen
  • 开始时间 开始时间
R

reckychen

Unregistered / Unconfirmed
GUEST, unregistred user!
最好有相关程序和例子,谢谢
 
分少了点把
 
用“AT+VCID”就可以了!
 
to xebaobei,
真正懂的人是不会以“分”看事的。
 
关注????????????
 
你要用语言卡才能实现阿老兄,下面是东进语言卡的来电显示代码:
1:begin
if checkplayend(channelno) then
begin
//得到主叫号码
if ringdetect(channelno) then
begin
resetcalleridbuffer(channelno);
channel[channelno].Countdown:=channel[channelno].Countdown+1;
//这里要根据实际情况做修改,比如FSK是在第二次响铃以后才发送,要增加这里的时间数。
if channel[channelno].Countdown=30 then
begin
offhook(channelno);
channel[channelno].Countdown:=0;
L_tel.Caption:='接受电话号码失败';
channel[channelno].step:=100;
end;
p:=stralloc(128);
a:=getcalleridstr(channelno,p);
//接受完毕,校验正确
if a=3 then
begin
s:=p;
L_tel.Caption :=s;
offhook(channelno);
channel[channelno].step:=100;
channel[channelno].Countdown:=0;
end;
//接受完毕,校验错误
if a=4 then
begin
s:=p;
//L_tel.Caption :='校验出错,号码是:'+s;
offhook(channelno);
channel[channelno].step:=100;
channel[channelno].Countdown:=0;
end;
strdispose(p);
end;
end;

 
来电显示程序要具备两个条件:
一是有带来电显示的硬件设备(如带来电显示的Modem、或语音卡)。
二是要去当地电信局(电话局)开通来电显示业务。
对于大部分的modem来说,AT+VCID指令有效,但我用过有些 modem ,上述指令无效。编程时请参考自己modem的手册,手册上一般附有MODEM的通讯指令。
 
多人接受答案了。
 
后退
顶部