热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OOB短信参数设置参考

OOB短信概述OOB(Out-Of-Bound)短信,相对于移动应用的实际业务通道而言,也称为带外短信;OOB对于终端手机来讲是不可见的,终端应用可以截取该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,并且指定监听端口等信息,如下:

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


推荐阅读
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • python3 logging
    python3logginghttps:docs.python.org3.5librarylogging.html,先3.5是因为我当前的python版本是3.5之所 ... [详细]
  • 图片添加二维码水印教程
    本博客介绍一下用jdkawt实现图片加文字水印和图片水印的方法一、图片文字水印原来图片加上文字水印后图片二、图片加图片水印原来图片:水印图片:添加水印后的图片: ... [详细]
  • 后台自动化测试与持续部署实践
    后台自动化测试与持续部署实践https:mp.weixin.qq.comslqwGUCKZM0AvEw_xh-7BDA后台自动化测试与持续部署实践原创 腾讯程序员 腾讯技术工程 2 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 本文介绍了sqlserver云存储和本地存储的区别,云存储是将数据存储在网络上,方便查看和调用;本地存储是将数据存储在电脑磁盘上,只能在存储的电脑上查看。同时提供了几种启动sqlserver的方法。此外,还介绍了如何导出数据库的步骤和工具。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 本文介绍了使用数据库管理员用户执行onstat -l命令来监控GBase8s数据库的物理日志和逻辑日志的使用情况,并强调了对已使用的逻辑日志是否及时备份的重要性。同时提供了监控方法和注意事项。 ... [详细]
  • Netty源代码分析服务器端启动ServerBootstrap初始化
    本文主要分析了Netty源代码中服务器端启动的过程,包括ServerBootstrap的初始化和相关参数的设置。通过分析NioEventLoopGroup、NioServerSocketChannel、ChannelOption.SO_BACKLOG等关键组件和选项的作用,深入理解Netty服务器端的启动过程。同时,还介绍了LoggingHandler的作用和使用方法,帮助读者更好地理解Netty源代码。 ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
author-avatar
1凡evan
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有