我正在开发一个SMS网关,我正在思考我应该在其中实现的功能。所以我回顾了一些短信网关(SMSNOW,SMS工作室和Ozeki)的例子。
我几乎完成了实施,但我在几乎所有的SMS网关中都遇到了一个功能,允许用户为SMSC和ESME指定TON / NPI。
据我所知,当SMS网关准备使用SMPP协议发送短信时,需要解析发送方/接收方号码,并根据此指定TON / NPI。我理解允许您覆盖默认值并指定自己的TON / NPI非常棒。
我不明白为什么所有SMS网关都可以选择在SMS网关充当SMSC时为其指定自己的TON / NPI(当它接收短信,而不是发送短信时)。
当收到短信短信时,短信网关对指定的TON / NPI做了什么?
答案 0 :(得分:3)
SMS源地址的完整规范涉及3个属性:
TON =数字类型。
这指定该号码是完整的国际号码(即需要+前缀),还是国家号码,甚至是字母数字发送者(即包括最多11个字符的文本而不是数字发送者......非常有用用于广告)。
NPI =编号计划指标
指定该号码遵循的编号标准。它可以是E164标准的国际号码,也可以是运营商的私人号码(例如,对于高级服务)。
实际地址。
SMSC需要TON / NPI才能知道如何解释存储在地址中的字节。例如,如果TON是字母数字(5),它知道地址中的字节需要被解释为字符并相应地编码,而如果它是国际(1),它将每个字节分成2,每半个字节代表发件人的不同数字。
您可以参考SMPP 3.4 specification 5.2.5和5.2.6节,了解这些TON / NPI可能性的完整列表。您正在使用的特定SMS网关可能会限制您使用其中一些。