我有 2 个 gprs/gsm 调制解调器,其中一个是华为,另一个是 prolink 调制解调器。我通过 AT 命令发送或接收短信没有问题。但是,我正在尝试使用此命令 AT+CNMI 接收自动通知,但无法使其正常工作,但是当我尝试使用此命令时,调制解调器回复 ok 且没有错误。
到目前为止我已经执行的程序
为 AT+CNMI 命令 2,1,0,0,0, 2,2,0,0,0 等尝试了多种组合但无济于事
我已将首选消息存储设置为 sim 卡,并且我能够使用各种 AT 命令接收消息并提取它。
我尝试在超级终端以及使用 C 锐利但无济于事。调制解调器附带的内置软件能够接收通知。有人可以指导我吗。
我想用 GPRS 模块和通过 TCP 连接将图片发送到服务器。但我的图片在某些字节中包含一些“1a”(CTRL + Z)值。正如我们所知,这是使用 AT 命令发送短信或数据的终止符。如何将 ctrl+z 作为一个字节的数据发送?
此外,当发送进程到达字符 \0 时,它会停止并返回错误。我的意思是 GPRS 模块向串口发送 ERROR。例子:
FF D8 FF E0 00 10
FF 和 D8 和 FF 和 E0 将成功发送但在 00 处发生错误。问题是什么?谢谢。
我们购买了一个 4 通道 GSM 网关,型号为 GoIPx4-G610(手册标题为“用于 GSM 语音网关的 GoIP 系列 SIM 卡 - GSM VOIP 网关”)。
我们希望开发一个自定义应用程序来控制 GOIP 网关。我们在过去开发了自定义应用程序,这些应用程序通过 AT 命令来控制简单的 GSM 调制解调器,特别是用于发送/接收 SMS 消息。
虽然可以通过 SIP 控制网关,但如果可能,我们希望通过 AT 命令控制嵌入在网关中的 GSM 调制解调器。这是因为 AT 命令提供了细粒度的控制,而且我们不需要 VoIP 功能,因为我们只需要发送/接收 SMS 消息。
网关运行一个未知的 Linux 实例,我们可以通过 telnet 连接到该实例。不幸的是,我们没有对其进行身份验证的凭据。网关还有一个 web http 管理界面,我们可以对其进行身份验证,但我们找不到与我们可用于 AT 命令的通道相关的设置/信息。
文档很差,提供商无法向我们提供任何有关此的有用信息。
如果有人知道我们如何向网关内的调制解调器发送 AT 命令,我们将不胜感激。
到目前为止,我们已经尝试对 telnet 接口进行暴力攻击以找到凭据,但没有成功。我们希望一旦我们可以连接到驱动网关的 Linux 实例,我们就可以通过串行连接(发送 AT 命令)从那里连接到调制解调器,我们可以重新配置它以重定向调制解调器外部的连接或为向调制解调器发送命令。
该设备有一个更新固件选项(通过网络界面),它总是给出错误“下载失败”。从他们的更新页面手动下载固件(.pkg 文件),并从嵌入式 Linux 发行版中提取文件,这些文件应该与放置在网关上的文件相对应。这些文件作为 ROMFS 压缩映像保存在 pkg 文件中,我们将其安装在测试站上以查看文件(可能网关上运行的操作系统是uClinux发行版)。
这样做是希望我们可以在那里找到可以用经典攻击破解的 /etc/passwd 文件。但是没有找到它,可能该文件位于网关闪存中(与存储在 ROM 存储器中的 Linux 文件相反)。因此,如果有一种方法可以擦除/重置此闪存,这可能是一个解决方案(以防网关在没有这些文件的情况下不会拒绝启动)。如果有这样的事情,另一个解决方案是能够使用 passwd 文件访问闪存。
我正在尝试执行以下操作
我正在使用我的 Java 应用程序打电话给另一个人(已经完成并且工作正常)。
然后我正在播放录音,例如“请按 1 继续用英语”(已经完成并且工作正常)。
现在我想检测那个人按 1,根据我在谷歌搜索中的研究,我知道这可以使用 DTMF。如果这个人按 1,我想根据我的情况执行操作。
我的问题是如何在 java (J2SE) 中使用 DTMF 检测该数字。我正在使用中兴 USB 加密狗拨打电话。拨号、挂断等控制是通过AT指令+Java IO实现的。
这是我的示例代码,但它没有给出正确的拨号号码及其每次循环。
public class zxczczz extends javax.swing.JFrame {
/**
* Creates new form zxczczz
*/
public zxczczz() {
initComponents();
}
float[] lowFreq = new float[]{697.0F, 770.0F, 852.0F, 941.0F};
float[] highFreq = new float[]{1209.0F, 1336.0F, 1477.0F, 1633.0F};
float[] dtmfTones = new float[]{697.0F, 770.0F, 852.0F, 941.0F, 1209.0F, 1336.0F, 1477.0F, 1633.0F};
int dtmfBoard[][] = {{1, 2, 3, 12}, {4, 5, 6, 13}, {7, 8, …Run Code Online (Sandbox Code Playgroud) 我已将华为 USB UMTS 调制解调器 (E220) 连接到我的 Linux 机器,即 RaspberryPi。现在我有 2 个 ttyUSB 端口可用于与它通信,我使用 ttyUSB0 建立移动互联网连接和 ttyUSB1 用于其他任务,如发送和接收 SMS、检查状态和错误代码、进行调制解调器配置等。 定期(2 秒) ) 我在端口 ttyUSB1 上收到这个 AT 命令:
^DSFLOWRPT:n,n,n,n,n,n,n
Run Code Online (Sandbox Code Playgroud)
我完全理解(链接:感谢来自 http://mybroadband.co.za 的用户ginggs)。我也不太经常收到^BOOT命令,如下所示:
^BOOT:12659389,0,0,0,58
Run Code Online (Sandbox Code Playgroud)
有人可以解释 ^BOOT 中的这些数字是什么意思吗?我可以让 ^DSFLOWRPT 和 ^BOOT 中的通知/警告少/多一些(类似于“错误开/关”)?
[编辑]
添加了用于理解 ^DSFLOWRPT 命令的链接。
我正在尝试使用华为 E1550 3G 调制解调器通过 USSD 检查 SIM 卡余额
但是当我总是发送
AT+CUSD=1,"*100#",15
Run Code Online (Sandbox Code Playgroud)
我得到
+CME Error: 100
Run Code Online (Sandbox Code Playgroud)
是的,我的调制解调器支持 USSD,因为我有一个用于调制解调器的仪表板应用程序,我可以检查余额并为 SIM 卡充电。
我在 C# 中使用 GSMComm 库,我也在 putty termainl 中尝试过,但一直遇到相同的错误
我搜索了错误 100,发现它是“未知错误”并没有真正的帮助:)
我也尝试在发送之前将文本模式更改为 pdu 模式,但没有任何改变
AT+CMGF=0
Run Code Online (Sandbox Code Playgroud)
注意:我也试过
AT+CUSD=1,"*100#"
Run Code Online (Sandbox Code Playgroud)
同样的错误
和的回应
AT+CUSD=?
Run Code Online (Sandbox Code Playgroud)
是
(0-2)
Run Code Online (Sandbox Code Playgroud)
更新
我已将请求“*100#”转换为 7 位“2A31303023”,如下所示
AT+CUSD=1,"2A31303023" ,15
Run Code Online (Sandbox Code Playgroud)
回复
+CUSD: 2
Run Code Online (Sandbox Code Playgroud)
我相信问题即将解决,但响应是什么意思?
我正在做这里建议的事情:通过 ADB Android 发送 AT 命令
所以在我扎根我的三星 S5 之后,我用这个命令找到了我的调制解调器:getprop rild.libargs我得到了这个结果:-d /dev/smd0
然后我在我的 adb shell 中输入: echo -c "AT\r\n" > /dev/smd0
但什么都没有返回。
我不明白,有什么想法吗?
我还尝试了其他命令,例如:AT+CREG or AT+COPS=?,仍然没有。
我使用的是 Mac OS X。我购买了这款华为 E3531,因为我需要将它用作 GSM 调制解调器,通过 AT 命令发送短信。连接很好,一切正常,但我需要切换模式,以便它可以作为串行调制解调器工作,我可以通过 screen 命令连接到它
screen /dev/tty...
Run Code Online (Sandbox Code Playgroud)
根据这篇文章,我试图在华为 E3531 上使用 AT 命令,我正在尝试切换模式。问题是它不起作用。在这里,我向你展示我的动作。首先,我需要找到该产品的供应商 ID 和产品 ID,因此我启动以下命令:
lsusb
Run Code Online (Sandbox Code Playgroud)
我发现这条线非常有趣:
Bus 038 Device 003: ID 12d1:14dc 华为技术有限公司 华为移动
因此,供应商 ID 为 12d1,产品 ID 为 14dc。现在我想通过这个命令切换模式:
sudo usb_modeswitch -R -v 12d1 -p 14dc -W -M '55534243123456780000000000000011062000000100000000000000000000'
Run Code Online (Sandbox Code Playgroud)
结果它给了我以下日志:
MacBook-Pro-di-mac:usb-modeswitch-2.5.2 mac$ sudo ./usb_modeswitch -R -v 12d1 -p 14dc -W -M '55534243123456780000000000000011062000000100000000000000000000'
Password:
Take all parameters from the command line
* usb_modeswitch: handle USB devices with multiple …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用来自华为调制解调器的 AT 命令发送短信。但有时在使用 AT+CMGS 时 会返回 +CMS ERROR:302
这是我的代码
var SerialPort = require('serialport');
var port = new SerialPort("/dev/ttyUSB0", {
baudRate: 9600,
dataBits: 8,
parity: 'none'
});
console.log('port is now open');
port.on("open", function () {
console.log('Serial communication open');
port.write("AT");
port.write('\r');
port.on('data', function(data) {
console.log("Received data: " + data);
});
gsm_message_sending(port, "test", "+94758034032");
});
function gsm_message_sending(serial, message ,phone_no) {
serial.write("AT+CMGF=1");
serial.write('\r');
serial.write("AT+CMGS=\"" + phone_no + "\"");
serial.write('\r');
serial.write(message);
serial.write(Buffer([0x1A]));
serial.write('^z');
}
Run Code Online (Sandbox Code Playgroud)
我需要帮助找出导致此错误的原因..谢谢
我曾经在我的 Android 设备上使用“强制网络连接”到 LTE
at+cops=0,,,7
Run Code Online (Sandbox Code Playgroud)
5G NR有AT指令吗?
at-command ×10
gsm ×5
c# ×2
serial-port ×2
sms-gateway ×2
5g ×1
adb ×1
dtmf ×1
gprs ×1
java ×1
java-io ×1
linux ×1
lte ×1
node.js ×1
raspberry-pi ×1
sip ×1
sms ×1
ussd ×1
voip ×1