2010-08-25 141 views
3

我正在开发一个SMS网关,我正在考虑应该在其中实现的功能。所以我回顾了一些短信网关(SMSNOW,SMS studio和Ozeki)的例子。SMS网关SMSC/ESME TON/NPI

我几乎完成了实现,但我发现几乎所有的SMS网关都有一个功能,允许用户为SMSC和ESME指定TON/NPI。

据我所知,当SMS网关准备使用SMPP协议发送短信时,它需要解析发送者/接收者号码并在此基础上指定TON/NPI。而且我明白,允许您覆盖默认值并指定您自己的TON/NPI是很好的。

我不明白的是,为什么所有的短信网关都给你选择为SMS网关指定自己的TON/NPI,当它充当SMSC(当它收到短信,不发送它们时)。

短信网关在收到smpp短信时会如何处理指定的TON/NPI?

回答

3

一个SMS源地址的完整规范涉及3个属性:数

TON =类型。

这指定号码是一个完整的国际号码(即需要+前缀),还是一个国家号码,或者甚至是一个字母数字发送者(即包括多达11个字符的文本而不是数字发送者......完全对广告有用)。

NPI =编号计划指示器

这指定编号标准的数量以下。它可以是E164标准的国际号码,也可以是运营商的私人号码(例如对于额外费用的服务)。

实际地址。

SMSC需要TON/NPI才能知道如何解释存储在地址中的字节。例如,如果TON是字母数字(5),则它知道地址中的字节需要被解释为字符并进行相应编码,而如果是国际(1),则将每个字节拆分为2,每个半字节表示发件人的不同数字。

有关这些TON/NPI可能性的完整列表,请参阅SMPP 3.4 specification第5.2.5和5.2.6节。您使用的特定SMS网关可能会限制您使用其中的一部分。