这是一个在netty4框架下实现的三网合一短信网关核心框架,支持(cmpp/smpp3.4/sgip1.2/smgp3) 短信协议解析,支持长短信合并和拆分,也支持wap短信和闪信。
从代码中剥离LGPL协议的代码,保持框架代码为Apache2.0协议
支持自动删除接收到的上游提交的固定签名短信 设置EndpointEntity的SignatureType属性
支持SMPP协议发送7bit编码压缩后的短信内容 设置SMPPEndpointEntity的use7bitPack属性
支持proxy-protocol代理协议,能获取经代理后的源客户端IP 设置EndpointEntity的proxyProtocol属性 详见:http://www.haproxy.org/download/1.8/doc/proxy-protocol.txt
支持在开启一个tcp server port端口,同时支持4种协议接入 详见:MixedServerEndpointEntity 类
支持每个通道账号配置一个默认的Dcs编码器 设置EndpointEntity的SmsDcsBuilder属性
修复在arm架构CPU上使用BDB存储时的bug
删除SO_RCVBUF,SO_SNDBUF设置,使用操作系统默认的配置
修改默认滑动窗口大小为32
修改内容:
1: 长短信类 LongSMSMessage
中增加 UniqueLongMsgId
属性,表示一条完整短信的唯一标识 ,用于标识哪些短信分片对应同一条长短信.详细见readme介绍。
2: 针对长短信合并、回复状态报告业务新增了测试用例:com.zx.sms.transgate.TestReportForward
。
3: 长短信自动合并代码优化,减少错误合并的机率。
4:针对GBK编码,及16bit长短信拆分,避免将一个汉字的两个字节分到两个短信分片。
5:SMPP协议SMPPEndpointEntity增加默认字符集,允许配置每个账号有不同的默认字符编码。
6:EndpointConnector 增加 synwriteUncheck 方法:直接发送,不检查连接是否可写。
修改内容: 1: SMGPReport 乱码问题 2: 在每个Channel上增加GlobalConstance.entityPointKey,保存账号信息对象 3: 删除无用的单元测试代码
1:netty EventLoopGroup 优化:在Linux环境使用 EpollEventLoopGroup 2:长短信拆分生成refNo有一定机率重复 3:长短信合并的处理类使用spi机制,方便业务侧开发Redis集群版的合并功能 4:增加使用Redis合并长短信的测试用例
2.1.13版本的发送滑动窗口有bug, 本次版本进复修复