我一直在使用sim900模块来复制用于嵌入式项目的基本手机中的许多功能。除了在语音通话中输入选项外,我已经成功完成了大多数功能。尽管我正在使用的GSM / GPRS模块是sim900,但实际上我正在寻找通用解决方案(例如GSM 07.07等)。
方案:我使用ATD<number>;
发起呼叫,然后自动语音要求我拨“ 1”作为选项。如何发送“ 1”?
我一直在寻找答案。我已经遍历了AT命令手册。请帮忙。
答案 0 :(得分:0)
使用正式的GSM规范是一个很好的开始,尽管我想指出,很早以前27.007取代了07.07,您应该使用该文档(或相关文档,请使用27.005)。
我最初希望有两种方法可以实现此目的,即拨号字符串修饰符或DTMF命令,但我在27.007规范中查找拨号字符串,但找不到p
(暂停)修饰符。 1 我期待的是,W
(等待)修饰符会被忽略,仅出于兼容性考虑而包含在内。
在通话期间使用DTMF发送0
至9
,A
至D
,*
和#
,尽管在GSM网络中,这是在带外单独发出信号,而不是发送带内模拟音频。有一个特定的命令用于发送称为AT+VTS
(带有horrible syntax)的DTMF音频。因此,该命令是您问题的答案。从联机命令模式或从另一个串行连接调用它。
1 我期望存在p
修饰符的原因是,我能够在电话簿条目中输入一个,例如““ 12345678p123”将拨打12345678,等待建立连接,然后以DTMF音调发送123。但这显然是(仅)用户界面语音呼叫处理程序而非AT命令处理程序管理的内容。