如何在smpp中使用用户数据(UDH)?现在我要发送短信指定端口。

我使用OpenSMPP作为我的项目库。

最佳答案

请按照以下步骤通过SMPP发送UDH:


在esm_class字段上将UDHI位置1。最简单的方法-esm_class = esm_class | 0x40。
将UDH放在short_message字段的开头。请继续阅读以获取快速摘要。请参阅参考资料以详细了解如何编码UDH。


这是编码UDH的方法:


UDH的第一个字节必须提及UDH其余部分的长度(以字节为单位)。由于您可能不知道这一点,因此您可能需要稍后进行计算。
然后是一个或多个IE(信息元素)。每个IE均包含3个部分:

第一个字节:IEI(IE指示器)。标识要编码的元素。建立了IEI。
第二个字节:IEIDL(IEI数据长度)。标识保存数据部分的字节数。每个已建立的IEI对于此字段均具有固定值。
第三字节和其余部分:IEID(IEI数据):保存数据部分。每个已建立的IEI都有固定的数据格式。

计算每个IE消耗的总字节数,并将结果放在第一个字节中。


要将SMS发送到零件,可以使用IEI 0x04或0x05。我只看到使用0x05。

参考文献


3GPP specification: 23.040
User Data Header

07-24 09:37