- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在使用 SMPP cloud-hopper 库将长消息发送到 SMS gateway Innovativetxt.com,但当我们将长消息拆分为每个部分 140 字节时,似乎是这样。每条消息的字符数达到134个字符。
然而,行业标准是 GSM 编码长消息的每一部分都应包含 153 个字符。当我们通过 140 字节拆分时,我们只有 134 个字符是不是做错了什么?如果我们尝试提交大于 140 字节的消息,网关提供商会拒绝它,消息正文过大。
应将消息拆分为每条 153 个字符以发送到 SMSC,而不是通过每条 140 字节发送消息。
拆分长消息的最佳方法是什么?按消息大小,即 140 字节或消息字符计数?
任何人都通过 cloudhopper 或其他基于 Java 的库遇到过同样的问题,我们应该怎么做。
最佳答案
这是一个常见的混淆。你做的一切都是对的。消息长度可以是 160 个字符(7 位 GSM 03.38)、140 个字符(8 位拉丁文)、70 个字符(16 位 UCS-2)。注意:160 * 7 == 140 * 8 == 70 * 16。
当您拆分一条长消息时,总部件号和部件索引等附加信息存储在消息正文中,即所谓的用户数据 header (UDH)。这个标题也发生了。因此,对于 UDH,您留下了 153 个 GSM 字符(7 位)、134 个字符/字节(8 位)有效负载或 67 个 2 字节-unicode 字符(16 位)
另见 http://www.nowsms.com/long-sms-text-messages-and-the-160-character-limit
在您的情况下,对于 8 位的 Contatenated 消息,UDH 的长度为 6 个字节。
UDH结构
0x05: Length of UDH (5 bytes to follow)0x00: Concatenated message Information Element (8-bit reference number)0x03: Length of Information Element data (3 bytes to follow)0xXX: Reference number for this concatenated message0xYY: Number of fragments in the concatenated message0xZZ: Fragment number/index within the concatenated message
Total message length, bits: 160*7 = 140*8 = 1120UDH length, bits: 6*8 = 48Left payload, bits: 1120-48 = 1072
For GSM 03.38 you get 1072/7 = 153 GSM (7-bit) chars + 1 filling unused bit.For Latin you get 1072/8 = 134 (8-bit) chars.For UCS-2 you get 1072/16 = 67 (16-bit) chars.
如您所见,153 个 GSM 字符等于 134 个字节减去 1 位。可能这 134 个字符就是 Java 报告给您的。但是一旦你拆分了你的长文本消息,你最终会得到一个包含文本和 UDH 的二进制消息。并且您应该将消息视为二进制。我建议您从结果部分制作二进制转储并进行调查。
关于java - SMPP 提交长消息和消息拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21098643/
我有一个项目即将推出,我需要通过特定的移动运营商发送和接收消息,该运营商只提供一个 SMPP 接口(interface)。整个项目将是一个托管网站。我已经阅读了很多内容,但我还不太了解我这边实际需要什
我通过来自 Kannel 的 smpp 连接(使用 selenium SmppSim)发送消息并且它有效。但是不知何故,当我尝试接收消息时,或者换句话说,当我尝试从 SmppSim 发送消息时,它不起
我正在使用 Node SMPP,我可以向我的号码发送短信,但我无法获得送货收据(无论是否已送达)。请引用我下面的代码 如果有什么问题请指导一下 var smpp = require('smpp');
我有一个与通过 SMPP 或 SS7 发送 SMS 有关的关键问题。 案子: 我们使用 SMPP 连接到所有本地运营商(我们已经与每个运营商达成了协议(protocol))。事实上,我们能够向所有本地
如何查看已发送邮件的送达报告。我正在使用 PHP 并且我有 SMPP 帐户。有人可以帮我检查交货报告吗? 我会像在手机中一样收到递送报告作为消息吗? 或者发送函数的状态会为它做什么? 最佳答案 使用
当我使用 service kannel start 启动 kannel 服务时,一切正常,kannel 确实启动了,但不起作用。未创建日志文件,并且 /var/log/kannel/ 目录为空,但我不
请问是否可以设置唯一的消息标识符,该标识符稍后将在 DLR 中返回以供引用。 下面让我解释一下我当前的流程: 我的方法是向 smsc 网关发送一条消息,从 smsc 获取一个 id,保存该 id,当
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
当我使用 service kannel start 启动 kannel 服务时,一切正常,kannel 确实启动了,但不起作用。未创建日志文件,并且 /var/log/kannel/ 目录为空,但我不
SMPP 中区分文本短信和二进制短信的参数是什么? 我假设这两条消息都编码在 submitSM 对象中。如果没有,请说明 SMPP 二进制消息如何编码到 SMS 中。 最佳答案 检查data_codi
我想用java实现一个简单的客户端应用程序来使用SMS网关连接和发送消息。服务提供商已配置网关,我有它的 IP、端口、用户名和密码。我已经下载了SMPP API。 问题是没有足够的文档。那么有什么好的
我们正在使用 SMPP cloud-hopper 库将长消息发送到 SMS gateway Innovativetxt.com,但当我们将长消息拆分为每个部分 140 字节时,似乎是这样。每条消息的字
大家好!我在尝试通过 SMPP(使用 Logica Java 库)提交国际短信时遇到问题。我要总结一下我做过的测试。我正在使用 WireShark 监控 SMPP 相关 Activity 。 (工作)
我正在尝试制作一个 Windows 桌面 smpp 客户端,它的连接和发送都很好,除了一个错误,我在手机上收到的消息内容的末尾添加了一个额外的字符 (¿) . 所以我发送“测试”,但我的手机收到“测试
我们即将开始一个需要使用 SMPP 作为主要集成交换 channel 的项目。现在,由于 SMS 不一定是我们业务的核心,我想使用 Java 的 SMPP 库,这将是最不麻烦的。除了基于实际协议(pr
如何通过 SMPP 直接发送 SMS?我的提供商提供了一个 SMPP 接口(interface)来发送 SMS,我如何将其连接到它?有没有可以教我使用 SMPP 发送的库或示例?也许使用 PHP?还是
我目前正在尝试弄清楚 sms 类如何在 SMPP 中正确表示。然而,我现在完全对标准及其文档感到困惑。 在普通短信中我们有 Class0:Flash短信,显示在显示屏上 Class1:普通短信存储在
假设有两个接收者 session 通过不同的 TCP 端口从同一应用程序到 SMPP。消息发送到应用程序,回复(即 Deliver_sm_resp)通过其他 session 到达 SMPP这可能吗?或
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 7 年前。 Improve this ques
我尝试通过 smpp 帐户发送短信,但出现错误“发送数据包之前必须绑定(bind)到 SMSC”,问题是当我检查 smpp 帐户时,它已连接到 SMSC,但 SMS 却没有继续,短信甚至无法到达 SM
我是一名优秀的程序员,十分优秀!