社区
网络及通讯开发
帖子详情
通讯的问题:有电话打入时取得电话号码。
JQinHan
2005-04-24 05:29:05
用moden把电话线和电脑串口连起来,程序监控串口,当有电话打进来时,能不能得到打入的电话号码?能得到有什么要求?应该怎么做?
如果moden不行,那有什么设备可以完成这个功能?
解决了要多少分都行。我有二个ID,这个只有三百分,另一个有二千多分
...全文
294
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
打赏
举报
回复
在线等候中……
手机删除的
电话
号码
怎么找回?3个策略只等你的到来
有
时
候手指一滑,重要的
电话
号码
就消失得无影无踪,删除的
电话
号码
怎么找回?别急,今天就来揭秘找恢复
电话
号码
的3大绝招,让你的社交地图再次满血复活!
通过网页版QQ同步助手批量导入
电话
号码
到手机
通讯
录教程(二)
本文还有配套的精品资源,点击获取 简介:本教程旨在指导用户如何高效地将纸质
电话
号码
批量导入到手机
通讯
录中。首先,用户需准备格式规范的电子表格文件,包含姓名和
电话
号码
。然后,通过注册登录网页版QQ同步助手,选择“导入联系人”功能,并上传准备好的Excel文件进行解析。确认数据无误后,选择“开始导入”,并同步到手机
通讯
录。整个过程简化了数据输入,减少了手动输入错误的风险,并建议...
获取手机
通讯
录里的
电话
号码
获取iPhone用户手机号 使用下面的函数可以返回用户的手机号: extern NSString *CTSettingCopyMyPhoneNumber(); 然后调用即可。 由于这个函数是包含在CoreTelephony中,所以只能用于非官方iPhone SDK。 使用下面的函数可以返回用户的手机号: extern NSString *CTSettingCop
建立一个
通讯
录的结构记录,包括姓名、年龄、
电话
号码
【
问题
描述】建立一个
通讯
录的结构记录,包括姓名、年龄、
电话
号码
。输n(n<10)个朋友的信息,再按他们的年龄从大到小的顺序依次输出其信息。 【输入形式】先输入n,再依次输入n个人的信息 【输出形式】输出按年龄排序后的
通讯
录
鸿蒙5-社交
通讯
类实践-
电话
号码
自动识别
电话
号码
自动识别是社交
通讯
类应用中的典型场景之一。本示例基于实现在文本中自动识别
电话
号码
的功能,支持点击
电话
号码
呼叫和新建联系人。
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章