我目前正试图弄清楚短信类如何在 SMPP 中正确表示。然而,我现在完全被标准和它的文档弄糊涂了。
在正常的短信中,我们有
- Class0:显示在显示屏上的 Flash 短信
- Class1:普通短信存储在SIM卡上或设备内部
看SMPP规范,首先找到操作data_coding
中的参数,submit_sm
用于设置通过MAP发送的DCS。据我了解,如果我们要显式设置消息类别,我们需要将此参数的前四位设置为 1,然后设置两位表示编码,然后再设置两位表示消息类别。所以对于 Class1 Sms,我们将设置1111xx01
. 到目前为止这是正确的吗?
如果我们尝试设置此 DCS,但目前我们还将数据编码设置为“8 位数据”。看来,有几部手机无法理解这一点。这是在任何地方指定的,我们可以更改它,还是在发送其他消息类时需要特殊编码。
当我们尝试使用 SMPPv3.4 推荐的设置 Message 类的方式时,会出现更多的混乱。从 3.4 开始,操作中有一个可选参数submit_sm
,称为dest_addr_subunit
. 根据标准,此参数应设置为 0 表示未知,1 表示 MS-Display,2 表示移动设备等。如果我看一下,与 GSM 消息类别相比,这些参数似乎偏移了一个。Class0 编码为 1,Class1 编码为 2,依此类推。这是正确的还是这背后有更复杂的映射?
另外,如果我们设置dest_addr_subunit
,我们是否还必须设置 DCS ,或者我们可以将此参数保留为默认值吗?