最近要升级下短信网关。
随便找了个3.0的包和文档,发现里面和我2.0使用的很多方法都发生了改变。
长短信这东西在2.0是没有的东西。现在需要在现在的发送程序加入这个功能。因此需要使用
一、 设置UDHI标志
TP_udhi
Value 1 Integer GSM协议类型。详细解释请参考GSM03.40中的9.2.3.23,仅使用1位,右对齐。
SMGP的Submit信令中的TP_udhi设置为0x40。
二、消息内容增加用户数据包头UDH
包头一共6个字节,如下:
1、 字节一:包头长度,固定填写0x05;
2、 字节二:包头类型标识,固定填写0x00,表示长短信;
3、 字节三:子包长度,固定填写0x03,表示后面三个字节的长度;
4、 字节四到字节六:包内容:
1) 字节四:长消息参考号,每个SP给每个用户发送的每条参考号都应该不同,可以从0开始,每次加1,最大255,便于同一个终端对同一个SP的消息的不同的长短信进行识别;
2) 字节五:本条长消息的的总消息数,从1到255,一般取值应该大于2;
3) 字节六:本条消息在长消息中的位置或序号,从1到255,第一条为1,第二条为2,最后一条等于第四字节的值。
注:移动终端支持的一条消息的内容长度为140字节,因此后面还可以增加134个字节的真实的消息内容,若编码格式为0则可以增加134个ASCII字符,若编码格式为8则可以增加67个中英文字符。
这些貌似并不困难,但主要我发现2.0里面读取smgp.ini配置文件的方法竟然也不可用了。
请高手来指点下smgp.ini里面的配置文件读取的方法。不然只有用原始的方法来读了。
smgp 2.0协议不支持tlv字段,无法设置tp_udhi,所以肯定无法发送长短信
可以参考http:// smgp.googlecode. com