当前位置:编程学习 > C#/ASP.NET >>

一项目开发所遇到的问题!高手请进来看!

有一客户想要做一个电话通信程序,具体功能如下:

1、去电或者来电的同时,屏幕弹出一窗体,窗体中显示这个来电或者去电的电话号码在数据库的所有信息;

2、弹出的窗体除了有这个电话号码在数据库中的所有信息外,还要包括----1、是否通话   2、通话录音    等这些可选功能

3,如果选择1号按钮(去电默认1号按钮,也就是是否通话按钮默认为开启状态)进行通话时,在自己指定的某位置进行这次通话的详细记录(记录本次接受通话的客服是谁,通话时间,通话模式(来电还是去电)),MODEM卡编号等等);如果选择2号按钮,也就是通话录音,那么就会记录本次通话的所有录音(所保存的录音格式以MODEM卡编号和通话时间命名);

4,通话的同时,在现有的某B/S程序相关查询页面中的TEXT文本自动输入这个电话号码,并自动完成查询;

5,每个月的规定时间里,该程序自动清理一次所有的通话记录以及录音,自动上传到某一指定的电脑中去;

现在客户想这样,不购买电话识别盒,而是购买内置MODEM卡,把这些卡插到电脑中去,电话分线盒把其中一条电话线连接到这个MODEM卡中去,以此来实现以上功能。

没接触过这类的程序开发,所以不清楚许多问题,问题如下:

1,不购买电话识别盒而是通过识别MODEM卡电话信号的方式获取得这个电话号码,这种方式是否可以通过代码编写来完成?

2,开发金费应该喊多少?

请牛人帮忙解决下,师傅呢感谢啊~(采用C/S架构) --------------------编程问答-------------------- UP吧 --------------------编程问答-------------------- 1,不购买电话识别盒而是通过识别MODEM卡电话信号的方式获取得这个电话号码,这种方式是否可以通过代码编写来完成?

MODEM卡 ~~~着东西带的有没有获取电话号码的开发包..如果没有而且电话线路是模拟信号~~我实在想不到怎么做~~


--------------------编程问答-------------------- 顶 --------------------编程问答-------------------- 神奇。。看看~ --------------------编程问答-------------------- mark,等看. --------------------编程问答-------------------- 路过 --------------------编程问答-------------------- up --------------------编程问答-------------------- 不买电话识别盒,MODEM获取的没有用过

如果Modem能够识别电话信号,并且获取电话号码的话,厂家一般都会有对应的开会文档及类库支持,照着开发就行,



如果没有相应的开发文档支持,你不是厂家的开发人员,是不知道那些技术参数的,是没法开发的


对于语音卡这样的来实现楼主的功能,是比较简单的,费用也不会高,可以参考一下东进语音卡,有模拟电话,及数字电话的模块,网上都有对应的开发文档及例子

--------------------编程问答-------------------- 搜索一下调制解调器方面的技术,主要使用串口通信

以前了解了一下,没具体做过 --------------------编程问答-------------------- 学习。。。 --------------------编程问答-------------------- 要选用支持AT &F 读取出厂组态设定ID的Modem,网上的一些资料,给你个参考:
MODEM AT指令集  
 
 -------------------------------------------------------------------


 Modem RS-232C 说明 :


 接脚   名称   功能   方向

 ----------------------------------------------------

 1     AGND   安全接地

 2     TD    传送资料 PC TO MODEM

 3     RD    接收资料 MODEM TO PC

 4     RTS    控制线  PC TO MODEM

 5     CTS    控制线  MODEM TO PC

 7     DGND   信号接地

 8     DCD    信号侦测 MODEM TO PC

 12    HI    高速指示 MODEM TO PC

 15    TXC    传送时脉 MODEM TO PC *

 17    RXC    接收时脉 MODEM TO PC *

 20    DTR    控制线  PC TO MODEM

 22    RI    铃声指示 MODEM TO PC

 ----------------------------------------------------

 注 : * 号为同步传输时才使用



 MODEM 灯号


 PWR : 电源指示       亮时表示电源接通

 MR : 数据机备妥指示    亮时表示数据机在备用状态 (MODEM READY)

 DTR : 电脑连线指示     亮时表示电脑与数据机连线 (DATA TERMINAL

 READY)

 DCD : 数据机接通指示    亮时表示两台数据机连线成 (DATA CARRIER

 功            DETECTOR)

 OH : 占线指示       亮时表示数据机占用电话线 (OFF HOCK)

 HS : 高速指示       亮时表示数据机在高速状态 (HIGH SPEED)

 AA : 应答指示       亮时表示数据机自动应答 (AUTO ANSWER)

 TD : 传输指示 (TXD)    亮时表示数据机传送资料 (TRANSMITTER

 DATA)

 RD : 接收指示 (RXD)    亮时表示数据机接收资料 (RECEIVED DATA)



 MODEM AT 指令说明:


 AT指令除了指令本身以外尚包括S-Register及Result code

 S-Register是用来记录Modem的参数的暂存器,与有关的指

 令执行完毕後,Modem会去改变这些参数,但Modem由指令状

 态进入连线时,Modem会依照这些参数而决定Modem的功能,

 S-Register可由指令之执行而改变,或者也可以由直接改变

 S-Register而改变其内容.


 Modem的基本指令如下:


 AT指令可以为下列几款:(1)非同步指令(2)立即动作指令

 (3)MNP错误修正指令(4)拨号修饰指令

 .

 非同步指令:


 B BELL/CCITT协定设定

 B0:设定Modem为CCITT协定

 B1:设定Modme为BELL协定


 E 回应指令:

 此指令可以让使用者选择是否把输入的指令回应显示在

 萤幕上.

 E0:不回应指令

 E1:回应指令


 L 喇叭音量控制

 L指令控制喇叭的音量

 L0:喇叭不响

 L1:低音量

 L2:中音量

 L3:高音量


 M 喇叭控制

 此指令控制喇叭的开关

 M0:喇叭不响

 M1:Modem在拨号时,喇叭打开,在连线後,喇叭关掉

 M2:喇叭永远ON


 Q Result code 控制指令

 Q指令决定Modem要不要送出Result code 到电脑上

 Q0:显示Result code

 Q1:不显示Result code


 Sr= 写入S暂存器

 Sr=n 把 n 数据写入第 r 个S暂存器内


 Sr? 读取S暂存器

 Sr?读取第 r 个S暂存器


 V 决定Result code 的格式

 V指令选择Result code 的格式

 V0:选择数字式的Result code

 V1:选择文字式的Result code


 X 控制拨号的过程及结果显示

 X指令用来控制Modem在拨号过程中是否要辨识拨号音,

 忙音及显示结果是否包括速度显示等

 X0:Modem在拨号时不辨识号音及忙音,结果也只显示

 CONNECT,不显示Modem的速度

 X1:Modme拨号时不辨识拨号音及忙音,但结果显示速度,如

 CONNECT 1200,CONNECT 2400等

 X2:Modem拨号时辨识拨号音,但不辨识忙音,结果显示速度

 X3:Modem不辨识拨号音,但是辨识忙音及结果显示速度

 X4:Modem辨识拨号音,忙音及结果显示速度


 Y Long Space Break 中止连线

 Y指令指使Modem在收到Long Space Break 信号时是否

 要中止Modem连线

 Y0:在收到Long Space Break时,不中止连线

 Y1:在收到Long Space Break时,中止连线


 &C 设定RS-232C介面DCD Pin的状态

 &C0:设定RS-232C介面DCD Pin(第八Pin)永远ON

 &C1:RS-232C介面DCD Pin由信号来决定,当侦测到信号时

 DCD ON,否则OFF

 .

 &D 设定RS-232C介面DTR Pin的状态

 &D0:DTR Pin(20pin)永远ON,不理会DTR的控制

 &D1:DTR由ON变到OFF时,Modem由连线状态回到到指令状态

 &D2:DTR由ON变到OFF时,Modem切断电话线,取消自动回

 答及回到指令状态

 &D3:DTR由ON变到OFF时,Modem切断电话线,取消自动回

 答,并且回到Modem的起始状态


 &G Guard Tone的设定

 &G0:Modem不送出Guard Tone

 &G1:选择Guard Tone为550HZ

 &G2:选择Guard Tone为1800HZ


 &L 选择拨接或者专线的工作模式

 &L0选择Modem为拨接式工作模式

 &L1选择Modem为专线式工作模式


 &P 选择脉冲式拨号的M/B值

 &P0:M/B值为40/60

 &P1:M/B值为33/67


 &S 控制RS-232C介面DSR Pin的状态

 &S0:RS-232C介面DSR Pin(第六Pin)始终为ON

 &S1:RS-232C介面DSR Pin由DCD Pin(第八Pin)来决定

 .

 立即动作指令


 A 立即回答

 当Modem执行此指令以後,Modem开始侦测Carrier,如果

 Carrier侦测到,则进入连线状态


 A/ 重覆执行指令

 A/指令是唯一前面下必加"AT"的指令.Modem执行此

 指令以後,Modem执行上一次已经执行过而且尚暂存在

 Command Buffer的指令


 D 拨号指令

 Modem执行此指令,Modem会依跟在D指令之後的拨号修饰

 指令来拨号


 H 电话线切换控制

 H0:指使Modem切断电话线

 H1:指使Modem连线


 O 回到连线状态

 当Modem因执行ESC code 而回到指令状态时,Modem 可以

 由O指令而回到连线状态


 Z 重置指令 (RESET)

 此指令用来Reset Modem的现行状态

 Z指令会使Modem回复到开机起始状态


 &F 读取出厂组态设定

 &F用来存在ROM中的出厂设定的,载入到Modem的动作组态

 区域,而使Modem会执行出厂设定的状态


 &W 将动作组态写入非挥发性记忆体中

 &W把现在的动作组态写入非挥发性(NN-RAM)记忆体中

 等下次开机时,Modem会执行此动作组态


 &Z 储存电话号码

 此指令是用来将电话号码储存到非挥发性记忆体中,

 下次拨号时,可以由S指令而把此电话号码重拨出去

 ***此指令勿用,以免导至错误动作***

 .

 拨号修饰指令


 P 脉冲拨号

 P 指令选择拨号为脉冲式拨号(即转盘式拨号)


 T 在复频式拨号

 T 指令选择拨号方式为复频式拨号(接键式拨号)


 R 在拨号後处於Answer mode

 R 指令使Modem在拨号以後进入Answer mode

 原来 D 指令使 MODEM 在拨号以後进入 Originate mode,但是

 有些Modem的频道只有一个频道,不论拨号或回答皆

 只有Originate mode,所以如此种Modem连线即只有用

 Answer mode ,在拨号时加入 R 指令,可以使Modem在拨号以

 後进入Answer mode.

 语法:ATRDT3910324(CR)


 W 拨号前等待拨号音


 W 指令使Modem在拨号前等待号音,其等待时间由S7来决定.

 语法:ATDT3210324W123(CR)

 Modem 在拨123数字之前会先等待拨号音,在等到了拨号音

 以後才继续拨123,不然会送出"NO DIALTONE",表示等不到拨号音.


 @ 拨号前等待静音


 @指令使Modme在拨号以後,开始等待回铃声,在侦测到回

 铃声以後,再等5秒钟的静音,然後再继续执行指令,等待

 回铃声的时间由S7来决定

 语法:ATDT30221234@123(CR)

 Modem在拨号302123以後,等待回铃声,在侦测到回铃声

 以後,再等5秒钟的静音,侦测等5秒钟的静音以後再继续

 拨号123.


 ! 闪动


 !指令使Modem断线0.5秒,然後再继续拨号


 ; 拨号後回到指令状态


 ; 指令使Modem在拨完电话号码以後回到指令状态,继续接

 受下一个指令.


 S 拨存在记忆中的电话号码


 S 指令和拨号指令一起用,使Modem拨上次由&Z指令存起来

 的电话号码


 语法:ATDS(CR)

 .

 主要S暂存器摘要:


 暂存器  出厂设定值  范 围  单位  功能

 --------------------------------------------------------

 S0      0    0-255  RING  设定铃响次数

 回应电话


 S1      0    0-255  RING  计算铃响次数


 S2     43    0-127 ASCII  ESC code


 S3     13    0-127 ASCII  输入字元

 (Carriage

 Return)


 S4     10    0-127 ASCII  跳行字元


 S5      8    0-127 ASCII  退回字元

 (Backspace)


 S6      2    0-255  秒   等侯拨号音时间


 S7     30    1-60  秒   拨号後等待信时

 间


 S8      2    0-255  秒   逗号暂停时间


 S9      6    0-255  0.1秒 信号侦测反应

 时间


 S10     14    0-255  0.1秒 信号消失至挂

 断电话反应时

 间

 S11    保 留


 S12     50    20-255  0.02秒 ESC code前後


 S13    保 留


 S14至S27 Modem内部状态设定

 .

 回应码



 AT指令相容Modem在执行完指令以後会回应一个码,告诉

 使用者执行的结果,使用者也只有在收到Modem的回应以後才

 能继续下达下一个指令,或者继续下一步的动作,所以回应码

 也是指使使用者下一步要如何进行的指标,如CONNECT及

 CONNECT 1200就可以告欣使用者须在Modem是在300BPS或者

 1200BPS传输速度,使用者必须依照此指示送出资料,不然资

 料传输会发生错误.


 回应码摘要:


 英 文     代号   意义

 -----------------------------------------------------

 OK      0   指令执行无误


 CONNECT    1   X1状态下表示两台Modem连线成功

 X2,X3.X4状态下,表示两台

 MODEM连线成功,而且速度为300BPS


 RING     2   铃声进来


 NO CARRIER  3   两台 MODEM 连线失败


 ERROR     4   指令错误或指令行太长超过40个字


 CONNECT 1200 5   两台 MODEM 连线成功,而且速

 度为1200BPS


 NO DIALTONE  6   未侦测到拨号音



 BUSY     7   电话线忙碌


 NO ANSWER   8   在 @ 指令下, MODEM 在侦测到

 回铃声以後未侦测到5秒钟的静

 音


 CONNECT 2400 10  两台 MODEM 2400BPS连线成功


 ******** 以上各暂存器及各种初始值皆以尉台公司出品********

 之数据机为样本其它厂牌请参考该牌数据机之

 技术手册或操作手册
 
--------------------编程问答-------------------- 还有人开发这个路由猫呀!!是不是那个德国设备?为了省电话费?最后怎么开发也不如呼叫中心的一个小手指头。
网络电话比这个省钱多了。 --------------------编程问答-------------------- 电话语音系统?
开发简单,关键是硬件,你可以网上看看哪家的便宜些 --------------------编程问答-------------------- 强大
--------------------编程问答-------------------- 给你做整个项目差不多 up --------------------编程问答--------------------
引用 2 楼 zgke 的回复:
1,不购买电话识别盒而是通过识别MODEM卡电话信号的方式获取得这个电话号码,这种方式是否可以通过代码编写来完成? 

MODEM卡 ~~~着东西带的有没有获取电话号码的开发包..如果没有而且电话线路是模拟信号~~我实在想不到怎么做~~ 


^_^ 用ADC做解码器... --------------------编程问答-------------------- bangding帮顶
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,