社区
网络及通讯开发
帖子详情
通讯的问题:有电话打入时取得电话号码。
JQinHan
2005-04-24 05:29:05
用moden把电话线和电脑串口连起来,程序监控串口,当有电话打进来时,能不能得到打入的电话号码?能得到有什么要求?应该怎么做?
如果moden不行,那有什么设备可以完成这个功能?
解决了要多少分都行。我有二个ID,这个只有三百分,另一个有二千多分
...全文
291
15
打赏
收藏
通讯的问题:有电话打入时取得电话号码。
用moden把电话线和电脑串口连起来,程序监控串口,当有电话打进来时,能不能得到打入的电话号码?能得到有什么要求?应该怎么做? 如果moden不行,那有什么设备可以完成这个功能? 解决了要多少分都行。我有二个ID,这个只有三百分,另一个有二千多分
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
touhu
2005-06-25
打赏
举报
回复
来电显示用MODEM!我做过,呵呵,现在还在用呢!
用AT#CID或AT+VCID命令。
自己用超级终端试试就知了。
线路一样得开通来电显示才行!
「已注销」
2005-06-06
打赏
举报
回复
mark
CWYCN
2005-04-27
打赏
举报
回复
学习
mli0080
2005-04-25
打赏
举报
回复
不开通来电显示你怎么从电信局得到对方的号码呢?
Behard
2005-04-25
打赏
举报
回复
肯定需要开通来电显示的
Behard
2005-04-25
打赏
举报
回复
电话号码跟在 Ring 命令后面
bluesen
2005-04-25
打赏
举报
回复
线路必须申请开通来电显示。据我所知,各地的电信送主叫的模式是不同的,有FSK和DTMF两种模式,这两种模式我都遇到过。
如果Modem不行,就买个语音卡,语音卡可以轻易支持多路,而且相对稳定,也可以适应多种主叫发送模式。
我的免费语音平台,既可以支持语音Modem,也支持多种语音板卡,代码是完全一样的:
http://www.bluespace.com.cn/koodoo
不妨看看,也可以到网站上的留言簿上探讨。
wakala
2005-04-25
打赏
举报
回复
学习
JQinHan
2005-04-24
打赏
举报
回复
看了下程序,不是很明白,应该就是一个函数,在不停地监视moden所连的端口,一有电话打入则能得到电话号码。
是不是这样?
JQinHan
2005-04-24
打赏
举报
回复
刚睡了会。
我试一下,谢谢了。
这个要不要开通电话的来电显示?
Behard
2005-04-24
打赏
举报
回复
bufferOK 是在中断接收函数控制
收到 '\r' 即可置为 true
Behard
2005-04-24
打赏
举报
回复
直接使用 AT 命令的方式控制
我以前写的 DOS 下控制 Modem 的程序
void comm_putc ( unsigned char c ) /* sends char out port */
{
while ( ( inportb ( stat8250 ) & 0x20 ) == 0 ) ;
/* Wait til transmitter is ready then send it */
outportb ( dat8250 , c );
// outportb ( 0x3f8 , c ) ; // COM1=0x2F8 COM2=0x3F8
}
void SendCommand ( char *cmdline )
{
unsigned char send_character ;
for ( ; ( send_character = *cmdline ) != '\0' ; cmdline++ )
comm_putc ( send_character ) ;
return ;
}
long ReadTime( void ) // 获取时间
{
union REGS r;
long milliseconds;
r.h.ah = 0x2c;
int86( 0x21, &r, &r );
milliseconds = (long) r.h.dl * 10; // dl : hundredths
milliseconds += (long) r.h.dh * 1000; // dh : seconds
milliseconds += (long) r.h.cl * 60000L; // cl : minutes
milliseconds += (long) r.h.ch * 3600000L; // ch : hours
return( milliseconds );
}
int Initialize ( void ) // 初始化
{
long timeout ;
char *rece_temp ;
timeout = ReadTime () + 2000L ;
comm_putc ( 'A' ) ;
comm_putc ( 'T' ) ;
comm_putc ( '\r' ) ;
while ( ReadTime () < timeout )
{
if ( bufferOK )
{
bufferOK = 0 ;
if ( ( rece_temp = strstr ( inter_buffer, "OK" )) != 0 )
{
// printf ( "Initialize is OK!\n" ) ;
return 1 ;
}
}
}
// printf ( "Initialize is Failed!\n" ) ;
return 0 ;
}
int Dial ( void ) // 拨号
{
long timeout = ReadTime () + 60000L ;
char *rece_temp ;
inter_no = read_no = 0 ;
comm_putc ( 'A' ) ; //Can use SendCommand()
comm_putc ( 'T' ) ;
comm_putc ( 'D' ) ;
comm_putc ( 'T' ) ;
SendCommand ( "12345678" ) ; // 电话号码
comm_putc ( '\r' ) ;
while ( ReadTime () < timeout )
{
if ( bufferOK )
{
bufferOK = 0 ;
if ( ( rece_temp = strstr ( inter_buffer, "CONNECT" )) != 0 )
{
// printf ( "%s\n" , rece_temp ) ;
return 1 ;
}
if ( ( rece_temp = strstr ( inter_buffer, "NO CARRIER" )) != 0 )
{
// printf ( "No Carrier!\n" ) ;
return 0 ;
}
}
}
return 0 ;
}
int Answer ( void ) // 应答
{
long timeout = ReadTime () + 60000L ;
char *rece_temp ;
inter_no = read_no = 0 ;
comm_putc ( 'A' ) ;
comm_putc ( 'T' ) ;
comm_putc ( 'A' ) ;
comm_putc ( '\r' ) ;
while ( ReadTime () < timeout )
{
if ( bufferOK )
{
bufferOK = 0 ;
if ( ( rece_temp = strstr ( inter_buffer, "CONNECT" )) != 0 )
{
// printf ( "%s\n" , inter_buffer ) ;
return 1 ;
}
if ( ( rece_temp = strstr ( inter_buffer, "NO CARRIER" )) != 0 )
{
// printf ( "No Carrier!\n" ) ;
return 0 ;
}
}
}
return 0 ;
}
int Ring ( void ) // 响铃
{
char *rece_temp ;
if ( bufferOK )
{
bufferOK = 0 ;
if ( ( rece_temp = strstr ( inter_buffer, "RING" )) != 0 )
{
// printf ( "%s\n" , inter_buffer ) ;
return 1 ;
}
}
else
return 0 ;
}
int Hangup ( void ) // 挂机
{
long timeout = ReadTime () + 1250 ;
char *rece_temp ;
while ( ReadTime() < timeout )
;
SendCommand ( "+++" ) ;
timeout = ReadTime() + 1250 ;
while ( ReadTime() < timeout )
;
timeout = ReadTime() + 10000L ;
SendCommand ( "ATH0\r" ) ;
while ( ReadTime () < timeout )
{
if ( bufferOK )
{
bufferOK = 0 ;
if ( ( rece_temp = strstr ( inter_buffer , "OK" )) != 0 )
{
// printf ( "Hang is OK!\n" ) ;
return 1 ;
}
}
}
return 0 ;
}
Behard
2005-04-24
打赏
举报
回复
你直接使用 AT 命令还是 微软的 API?
如果是 AT 命令的话,会返回 RING 命令带电话号码的
不过这需要你的电话网络支持
JQinHan
2005-04-24
打赏
举报
回复
在线等候中……
编写
电话
号码
查询系统
本文档描述了一个
电话
号码
查询系统的详细设计,包括增加、删除、修改和查询
通讯
录信息的功能。系统采用GUI界面,提供了用户登录、分组管理、好友管理等操作,各功能界面清晰简洁。通过Deng和MyFrame等类实现不同操作,确保用户能够方便地管理他们的联系人信息。
数据结构(C++)——
电话
号码
查询系统实现
本文介绍了一个基于单链表实现的
电话
号码
查询系统的设计与实现过程。系统支持添加、显示、排序、查找、删除和修改等功能,并实现了数据的文件保存功能。
手机删除的
电话
号码
怎么找回?3个策略只等你的到来
在快节奏社会,手机
通讯
录可能因意外被清除。本文介绍三种恢复删除
电话
号码
的策略:利用手机回收站功能恢复;借助专业软件如数据蛙安卓恢复专家恢复;寻求专业数据恢复服务。同
时
提醒平
时
做好数据备份。
通过网页版QQ同步助手批量导入
电话
号码
到手机
通讯
录教程(二)
本教程指导用户将纸质
电话
号码
批量导入手机
通讯
录。先准备规范电子表格文件,注册登录网页版QQ同步助手,用其“导入联系人”功能上传解析文件,确认数据无误后导入并同步到手机。还提及定期备份
通讯
录,以及自动化导入的开发潜力。
获取手机
通讯
录里的
电话
号码
本文介绍如何在iPhone上获取用户的手机号码及
通讯
录中联系人的
电话
号码
。通过使用CoreTelephony框架中的函数和AddressBook框架提供的API,开发者可以实现这些功能。文章详细展示了调用系统
通讯
录界面的方法,并提供了获取选中联系人
电话
号码
的代码示例。
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章