我目前正在尝试弄清楚 sms 类如何在 SMPP 中正确表示。然而,我现在对标准及其文档完全感到困惑。
在普通短信中我们有
- Class0:Flash短信,显示在显示屏上
- Class1:普通短信存储在 SIM 卡上或设备内部
查看SMPP规范,我首先找到参数data_coding
in the submit_sm
操作,用于设置通过MAP发送的DCS。据我了解,如果我们想显式设置消息类别,我们需要将此参数的前四位设置为 1,然后两位指示编码,然后另外两位指示消息类别。因此对于 Class1 Sms,我们将设置1111xx01
。到目前为止这是正确的吗?
如果我们尝试设置此 DCS,但目前我们还将数据编码设置为“8 位数据”。看来,很多手机都无法理解这一点。这是在任何地方指定的吗?我们可以更改它吗?或者是发送其他消息类时需要的特殊编码。
当我们尝试使用 SMPPv3.4 推荐的方式设置消息类时,会出现更多混乱。从 3.4 开始,有一个可选参数submit_sm
操作,称为dest_addr_subunit
。根据标准,该参数应设置为 0(表示未知)、1(表示 MS-Display)、2(表示移动设备)等。如果我看一下,与 GSM 消息类别相比,这些参数似乎移动了 1。 Class0 编码为 1,Class1 编码为 2,依此类推。这是正确的还是这背后有更复杂的映射?
另外,如果我们设置dest_addr_subunit
,我们还需要设置DCS吗?或者我们可以将此参数保留为默认值吗?
我建议阅读3GPP TS 23.038 http://www.3gpp.org/ftp/Specs/html-info/23038.htm详细的 DCS 规范(数据编码方案 https://en.wikipedia.org/wiki/Data_Coding_Scheme) 描述。
如果是 DCS 位 765400xx
,您应该检查 DCSbit 4 value.
- 位 4 == 0 - 此消息没有消息类别(位 1 和 0 被保留)
- 位 4 == 1 - 位 1 和 0 包含消息类别
所以你应该设置data_coding
SMPP参数按照3GPP TS 23.038规范来处理message_class
适当地。
默认情况下,GSM SMS 消息没有 message_class,这与 message_class = 1 不同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)