问题标签 [pdu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
smpp - 使用 logica SMPP 从 pdu 获取有效负载信息
如何使用 logica SMPP 从 pdu 获取有效负载信息?
android - “deliveryIntent”如何在 Android SMS 框架中工作?
SMSManagers sendTextMessage函数的 Android 文档
如果不为 NULL,则在将消息传递 给收件人时广播此 PendingIntent。状态报告的原始 pdu 在扩展数据(“pdu”)中
我不明白在将 SMS 传递到destinationAddress 或scAddress 时是否触发了deliveryIntent 以及“状态报告的原始pdu 在扩展数据(“pdu”)中的含义是什么以及如何获取该报告?.
我感谢你的努力。
python - Python - telnet - 自动化 APC PDU
我正在尝试使用 python 的内置 telnet 功能自动关闭连接到 APC PDU 的设备。我相信我可以输入用户名和密码,但之后我无法继续。我的代码如下:
我正在运行 Windows,所以我相信https://github.com/quackenbush/APC不是一个选项,因为我无法安装 pexpect。
任何帮助,将不胜感激。
谢谢,
帕思
c# - SNMP PDU 中的变量绑定
我正在用 C# 开发一个 SNMP 实用程序,它可以使用 SNMP 版本 1 数据包格式从指定的设备 OID 获取数据。
我几乎完成了它,但它们是我无法解决的问题。
我通过发送一个“Get”数据包成功查询了一个变量,但我需要通过发送一个数据包来查询多个变量。
我以这种方式尝试过:
我用谷歌搜索了很多,但找不到任何相关的东西。
android - Android上的CDMA PDU解析
我编写了一个程序来解码 CDMA 3GPP2 点对点 SMS 消息。我在网上找到的几个 CDMA PDU 十六进制字符串上对其进行了测试,效果很好。但是,当我尝试在 Android 平台上的所有传入短信上实现它时,它总是失败。
我查看了传入的 PDU,它似乎没有遵循我习惯看到的相同模式。谁能解释这个 PDU 是什么格式,或者我缺少什么来正确解码这个 PDU?是否有我没有考虑的其他标题或字段?
从我手机上的传入短信中提取的 PDU 示例:
我发现并测试了我的解析器的所有 CDMA pdus 看起来更像:
运营商:Verizon
电话:Samsung Galaxy S Fascinate
跑步Android 2.3.3
delphi - 当我对 SMS PDU(GSM 7 位)用户数据进行编码/解码时,是否需要先添加 UDH?
虽然当 UDH不存在时我可以成功地对 SMS 消息的用户数据部分进行编码和解码,但是当 UDH存在时(在这种情况下,对于串联的 SMS)我会遇到麻烦。
当我对用户数据进行解码或编码时,是否需要先将 UDH 添加到文本中?
本文提供了一个编码例程示例,该示例使用填充位(我仍然不完全理解)补偿 UDH,但它没有给出传递给例程的数据示例,因此我没有明确的用例(我在网站上找不到解码样本):http: //mobiletidings.com/2009/07/06/how-to-pack-gsm7-into-septets/。
到目前为止,如果我在解码之前将 UDH 预先添加到用户数据中,我已经能够得到一些结果,但我怀疑这只是一个巧合。
例如(使用来自https://en.wikipedia.org/wiki/Concatenated_SMS的值):
输出:“ß@ø¿Æ @hello world”
相同的输出:“ß@ø¿Æ @hello world”
如果没有预先设置 UDH,我会得到垃圾:
输出:“PKYY§An§eYI”
处理这个的正确方法是什么?
在对用户数据进行编码时,我是否应该在文本中包含 UDH?
我应该在解码后去掉垃圾字符,还是我(正如我怀疑的那样)完全不符合这个假设?
虽然这里的解码算法似乎在没有 UDH 的情况下工作,但它似乎没有考虑任何 UDH 信息: 寻找 GSM 7bit encode/decode algorithm。
如果有人能让我正确地继续前进,我将永远感激不尽。任何清晰的示例/代码示例将不胜感激。;-)
我还将提供一个包含算法的小型示例应用程序,如果有人认为它有助于解决这个谜题。
编辑1:
我正在使用 Delphi XE2 Update 4 Hotfix 1
编辑2:
感谢@whosrdaddy 的帮助,我能够成功地让我的编码/解码例程工作。
作为旁注,我很好奇为什么当 UDH 没有用它编码时用户数据需要在 7 位边界上,但是@whosrdaddy 引用的 ETSI 规范段落中的最后一句话回答说:
如果使用 7 位数据并且 TP-UD-Header 没有在 septet 边界上结束,则在最后一个 Information Element Data 八位字节之后插入填充位,以便整个 TP-UD 标头有整数个 septets。这是为了确保 SM 本身在八位字节边界上开始,以便较早的相位移动将能够显示 SM 本身,尽管可能无法理解 TP-UD 字段中的 TP-UD Header
我的代码部分基于以下资源中的示例:
https://en.wikipedia.org/wiki/Concatenated_SMS
http://mobiletidings.com/2009/02/18/combining-sms-messages/
http://mobiletidings.com/2009/07/06/how-to-pack-gsm7-into-septets/
http://mobileforensics.files.wordpress.com/2007/06/understanding_sms.pdf
http://www.dreamfabric.com/sms/
http://www.mediaburst.co.uk/blog/concatenated-sms/
这是其他在 SMS 编码/解码方面遇到问题的人的代码。我确信它可以被简化/优化(欢迎评论),但我已经成功地使用了几种不同的排列和 UDH 标头长度对其进行了测试。我希望它有所帮助。
php - 如何构建串联的短信 pdu?获取垃圾字符
我正在尝试构建一些 PHP 代码以通过 telnet 将 SMS 发送到 SIM 服务器,但在发送连接消息时遇到了麻烦。
我已经阅读了一些关于使用填充位将编码的消息 septets 变成八位字节的内容,但我并不完全理解它是如何工作的。
我有一个类可以接收电话号码、消息(已拆分为最大 153 个字符)、短信总数和当前文本部分的订单号。
只要我在 $hexmessage 之前添加了“20”,它就可以工作。但是我在第一部分的开头(在我的味精的第一个字母之前)得到了一个垃圾字符,并且相同的垃圾字符替换了第二部分的第一个字母!(使用 '20' 所以它会显示一个空格,但它会显示一个三角形)
我不明白为什么,或者我必须改变什么才能让它正常工作。
我希望有人能帮助我理解我做错了什么。
这是我到目前为止所得到的:
java - 创建适用于 SmsMessage.createFromPdu() (GSM 3gpp) 的 Android PDU
目标:(注意:选择的答案为 CDMA(3gpp2)生成一个 GSM(3gpp)PDU )请参考这里
创建一个可以传递到的 PDU SmsMessage.createFromPdu(byte[] pdu)
。我正在向我的BroadcastReciever
一个收听 SMS 消息的人“广播意图”。
一BroadcastReciever
用于“真正android.provider.Telephony.SMS_RECEIVED
的”短信
intent-filter
对这些新的“应用程序短信”使用自定义操作。
所以我希望我BroadcastReciever
能够在不添加额外代码的情况下处理这两种类型的消息
(是的,我知道我可以BroadcastReciever
为不同的intent-filter
动作采取不同的方式,但我想真正做到这一点,因为我知道这是可以做到的,我很固执)
研究:
我整天/晚上都在做研究。即使我对数学和转换以及创建合适的算法非常糟糕,我也尝试过编写自己的代码。我查看了有关 PDUs和Create PDU Android的Stack 主题,但答案中的链接已损坏。我什至看了源代码com.google.android.mms.pdu
到目前为止,我只能使用http://www.wrankl.de/JavaPC/SMSTools.html中的一些代码创建一个没有“原始地址”的 PDU
配电单元:
目的地:555 消息:helloworld
这显然是无效的......
旁注:
除了本地使用之外,我不打算对 PDU 做任何事情,我不想在我的代码中使用硬编码的 PDU,因为我没有重复使用 PDU。
如果有什么我可以添加到我用来添加“原始地址”的代码中,那将起作用。或者有人知道我不知道的图书馆的信息吗?
谢谢
更新:
试过了
这给了我以下(以十六进制表示)
没用
java - 在 Android 中创建 CDMA (3gpp2) PDU
上周我问了一个类似的问题,甚至设置了赏金,在意识到问题是给出的答案是针对GSM PDU (3gpp)并且它在模拟器 (android 2.2) 中完美运行之后。我接受了答案并授予了赏金,并更改了标题以供将来参考。
问题:
现在,我在问如何创建一个 CDMA (3gpp2) PDU,类似于创建一个GSM PDU (3gpp),可以在 Android 的 API 中解析createFromPdu()
尽量避免自己写:
阅读新方法createFromPDU(byte[] pdu, String format)时我很兴奋, 然后意识到它不能向后兼容。
我什至对使用原始问答com.android.internal.telephony.gsm.SmsMessage.createFromPdu(pdu);
生成的 GSM PDU感到好奇。但我不太确定这是否安全......
所以我决定最好的方法是根据设备类型创建一个 GSM 或 CDMA PDU。
有没有人有一个可以创建 CDMA PDU 的片段?
或者知道如何将创建 GSM PDU 的方法转换为 CDMA PDU 格式?
更新:
我一直在努力手动创建一种方法来创建 CDMA (3gpp2) pdu在 cdma pdu 令人敬畏的故障之后我已经接近成功
但我似乎无法理解如何 7bit 打包BearerData
和 cat日期字符串正确地放在 pdu 的末尾,这是我到目前为止所拥有的
我不确定我是否走在正确的轨道上。
android - Delivery Intent 的 pdu 中是否包含接收短信的人的电话号码?
我正在尝试从这样的交付广播接收器Intent
中的 PDU 中找出接收短信的人的电话号码onReceive()
但这导致了以下错误
有可能,Android 的原生 SMS 应用程序可以做到这一点。