OOB短信参数设置参考

OOB短信概述

OOB(Out-Of-Bound)短信,相对于移动应用的实际业务通道而言,也称为带外短信;OOB对于终端手机来讲是不可见的,终端应用可以截取该OOB短信,从而达到服务端向客户端推送数据的目的。

该OOB短信实际上是二进制短信(Android里的Data_SMS),Android系统收到该短信后并不会入库也不会发送系统广播事件,所以通过继承ContentObserver使用观察者模式并不能截取该OOB短信。

在Android系统中,截取二进制短信是采用Receiver方式,并配置指定的监听端口,收取该端口的二进制短信数据、解析以及后续业务处理。

SMPP发送端设置

该发送端在VVM中是指VVMGW中的短信发送模块,在发送该OOB短信时,需要设置以下几个字段replace_if_present_flag、esm_class、protocol_id、data_coding,此外还需要设置UDH,该UDH用于指定OOB短信需要发送到终端的哪个端口。具体参数设置参考如下:

// 《OMTP_VVM_Specification_v1_3_Final[1].pdf》 2.9.1.7

submitsm.setReplaceIfPresentFlag((byte) 0x01);

// 《OMTP_VVM_Specification_v1_3_Final[1].pdf》 2.9.1.7

submitsm.setEsmClass((byte) 0x40);

// 《VVM短信填写格式.xls》

submitsm.setProtocolId((byte) 0x7d);

// 《OMTP_VVM_Specification_v1_3_Final[1].pdf》 2.9.1.7

submitsm.setDataCoding((byte) 0x04);

// 设置消息内容,设置UDH字段

ByteBuffer buffer = new ByteBuffer();

buffer.appendByte((byte) 0x06);// UDHL

buffer.appendByte((byte) 0x05);// IEI

buffer.appendByte((byte) 0x04);// IEL

buffer.appendByte((byte) 0x3e);// IED 16001

buffer.appendByte((byte) 0x81);// IED

buffer.appendByte((byte) 0x3e);// IED 16001

buffer.appendByte((byte) 0x81);// IED

buffer.appendString("MBOXUPDATE", Data.ENC_ASCII);

SVN路径:http://10.200.100.102/svn/VMS/C04/vvm/vvmclient/src/oob/

Android应用客户端设置

在Android客户端中如果需要截取二进制短信,需要在指定的端口上进行监听(正常情况下,接收到的二进制短信不会存到短信库中)。

即在AndroidManifest.xml中receiver中加入过滤器为android.intent.action.DATA_SMS_RECEIVED,并且指定监听端口等信息,如下:

<receiver android:name=".SMSReceiver">

<intent-filter android:priority="2147483647">

<action android:name="android.intent.action.DATA_SMS_RECEIVED"/>

<data android:host="localhost" android:port="16001" android:scheme="sms"/>

</intent-filter>

</receiver>

SVN路径:http://172.16.54.48/svn/mobile/testing/OOB/

注意:该端口需要与SMPP发送短信的UDH中两个BYTE字节的IED字段(3E81,即16001)的值相同。

截图

SMSC监控台-OOB短信

clip_image002

SMSC监控台-正常短信

clip_image004

Android应用接收OOB短信

clip_image006

转载于:https://www.cnblogs.com/kasuo/archive/2013/06/06/3122117.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值