介绍

一些设备不能持续侦听是否有需要连接的服务器。有的设备基于安全考虑不希望“开放一个端口”(比如主动接受连接)。无论如何,大多数设备可以接受未经请求的信息,有时也叫做“通知”。比如一些手持设备可以接收SMS文本短信息。甚至有的设备可能还可以接受简单的数据信息。

DM服务器可以利用这种通知来引导DM客户端向DM服务器建立一个连接。这个连接可能是通过HTTP、WAP、SIP或其它传输协议传输。

通知信息需要包含发送通知的服务器的认证消息。接受这个通知后DM客户端会建立一个到DM服务器的连接。在这期间,DM客户端会确认DM服务器是否在授权的服务器里然后在请求连接。

服务器Alerted的会话管理

通知信息给DM服务器请求DM客户端建立一个可管理的会话提供了可能。在这个通知信息里DM服务器可以告知DM客户端协议的版本以及会话服务在前台(用户界面)还是后台(对终端用户不可见)执行。它还可以告知用户会话的执行是由于服务器的决定还是用户自己决定。同时,服务器必须发送一个通知信息的摘要以避免拒绝服务(Dos)攻击。

图1 描述了服务器怎样提示管理会话的信息流

上面的信息流介绍是一个设备管理的会话。这意味着所有的信息共享一个相同的OMA DM Session ID。

DM通知的结构

Package#0 是通知信息里面用的默认格式。

DM 通知信息被编码成简单的二进制格式。DM通知信息由固定大小的header,后面跟着可选的Type-Length—Value(TVL)格和摘要组成。可选信息的数量由header决定。

下面的图片描述了一般的Package#0的格式。

DM 通知信息的MIME版本是 application/vnd.syncml.dm.notification,它的Content-Type 编码是 0x58。他的Byte顺序是Big Endian(网络顺序)。

DM客户端必须支持DM1.2[DMNotil2]的通知格式并且符合通知这本说明书里的格式定义。

DM 通知信息头格式

下面是dm通知信息的可选项的规格定义

Option 编号
(二进制)
名字 格式 大小/bytes DM客户端支持 DM服务器支持 发生
0001 Server-ID String 1-256 Mandatory Mandatory One
0010 Targeted-MO Unit 1-2 Optional Mandatory ZeroOrMore
0011 Requested-MO Unit 1-2 Mandatory Mandatory ZeroOrMore
0100 Preferred-Bearer Uint 1 Mandatory Mandatory ZeroOrMore
0101 Connect-Reason String 1-4095 Optional Optional ZeroOrOne
0110 Vendor-Info String 1-4095 Optional Optional ZeroOrOne

DM通知信息的可选格式

可选项必须按照Option Number里的顺序出现(见下一节)。见下图的Option Number,每一个可选项都有一个Length字段用来指定可选项的值的长度,按bytes计。可选项的值直接跟length字段。

Option Number

字段在header后面指定一个可选的序列数。它的值指定为4 bits。

Option Lenght

字段指定一个可选值的长度。比如,如果可选长度的值是3,那么可选值的大小是3 bytes。它的值指定为12 bits。

Option Value

可选值的格式依赖于各自的值。在这个文档里的可选项定义也使用下面的可选值的格式。

  • Uint:一个使Option length 的athe位代表网络字节顺序的非负整数。可选值的范围由2的Option Length bit 的次幂值计算决定。例如Option Length是2的话,Option Value 的十进制范围是 0-65535。

  • String:一个从[RFC5198]来的Net-Unicode即UTF-8[RFC3629]编码的Unicode字符串。注意ASCII字符串(没有用到任何特殊的控制字符)一直是有效的UTF-8 Net-Unicode 字符串。

  • Opaque:一个不透明的字节序列。这个类型在当其他类型如Uint或String需要的时候使用。怎样处理这个类型取决于可选项使用的类型。

DM 通知信息可选项

下面是dm通知信息的可选项的规格定义

Option 编号
(二进制)
名字 格式 大小/bytes DM客户端支持 DM服务器支持 发生
0001 Server-ID String 1-256 Mandatory Mandatory One
0010 Targeted-MO Unit 1-2 Optional Mandatory ZeroOrMore
0011 Requested-MO Unit 1-2 Mandatory Mandatory ZeroOrMore
0100 Preferred-Bearer Uint 1 Mandatory Mandatory ZeroOrMore
0101 Connect-Reason String 1-4095 Optional Optional ZeroOrOne
0110 Vendor-Info String 1-4095 Optional Optional ZeroOrOne

信息头字段描述

版本信息(VER)

VER字段指定DM服务器发送的DM通知信息的版本。它的值在通知信息里用4bits描述。为了启用这一规格必须把这个字段设置为0x01.其他的版本是为将来的版本预留的。

注意这个不是DM协议的版本,这是DM通知的版本。

Options Count(OPC)

OPC字段制订了header后面可选项的数量。它的值在通知信息里面用3 bits来表示。

引发管理的行为(I)

I 字段指定DM服务器怎样创建管理动作,既可以是用户请求,也可以是DM服务器已经控制了管理行为。这个值指定1bit。

引发管理行为的值必须是下面这两个。

值(binary) 语义 描述
0 终端用户引发 终端用户产生设备管理会话启动。
1 服务器引发 服务器产生设备管理会话启动。

用户交互模式(UIM)

UIM字段指定DM服务器的建议,是否....未完

转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/04/03/2998679.html

OMA 设备管理的通知发起的会话OMA Device Management Notification Initiated Session相关推荐

  1. iOS调用QQ客户端,发起临时会话

    多方查找 有两种方式 一. 不接入sdk 通过 QQ推广功能 发起临时会话 必须打开的QQ开启了推广功能(http://shang.qq.com 这个网站开启), 否则打不开. //是否安装QQ if ...

  2. 实现在线客服,QQ唤醒发起临时会话

    <a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=你的qq&site=qq& ...

  3. iOS调用QQ客户端发起临时会话

    一.前言: 前段时间项目中有个需求,在App内调用QQ客户端,在不是好友前提下,向指定的客服QQ发起临时会话,很简单的一个需求,但是实际实现起来却碰到很多问题. 1.QQ开发者平台,并没有找到App调 ...

  4. 会话及会话技术、Cookie对象、Session对象 详解

    会话及会话技术 当用户通过浏览器访问Web应用时,通常情况下,服务器需要对用户的状态进行跟踪.例如,用户在网站结算商品时,Web服务器必须根据 请求用户的身份,找到该用户所购买的商品.在Web开发中, ...

  5. iOS的音讯通知有两种方式,Badge Notification和Alert Notification

    当应用程序不处于前台运转中时,音讯通知能将某些信息及时告知用户.比方收到新音讯.收到新邮 件.程序下载已完成或者待办事项行将开端等.目前各挪动平台上抵消息通知的设计均有所差异,各有利害.这里整理了iO ...

  6. php会话到期提醒功能,php – 用于通知用户其会话即将过期的可访问方式

    我有一个站点,在给定的时间段内对用户进行身份验证,并在任何后续页面请求中延长时间间隔.我想知道如何通知用户他们的时间即将到期而不使用js.alert()但仍然可以访问. 我已经看到一些网站内容将从顶部 ...

  7. 腾讯QQ发起临时会话

    最初情形,链接为:tencent://message/?uin='qq号码'&Site=www.网站.com.cn&Menu=yes 解决办法: 点击网址进入:商家沟通组件--立即免费 ...

  8. php微信小程序会话保持,微信小程序保持session会话的方法

    一般我们web网站都会有cookie来保存session ID,将用户和服务器保持在一次会话中,但是很遗憾,微信小程序不支持cookie,他的每一次请求就是一次会话,这样就会产生一个问题,每次请求都需 ...

  9. php session 不通过cookie_PHP会话控制机制中,Cookie和Session的应用,你更喜欢谁

    会话控制是一种面向连接的可靠通信方式,通常根据会话控制记录判断用户登录的行为. 为什么要使用会话控制 我们在上网时,访问每一个网页都需要使用HTTP协议来进行交互.但是HTTP协议是无状态协议,也就是 ...

最新文章

  1. LeetCode简单题之按既定顺序创建目标数组
  2. linux 删除20日前数据,Linux 维护常用命令
  3. 汇编语言——《子程序应用(数制转换)程序设计》实验任务书
  4. Error message IBase category does not exist in table T371A
  5. pcl画圆球_PCL之轨迹绘制(二)
  6. (转) POJO和javabean的异同
  7. CVPR2019| ADCrowdNet: 用于人群理解的可变形卷积网络
  8. python解释器的安装
  9. SQL Server 2005 性能优化实战系列(文章索引)
  10. 大功率MOS管选型手册及可申请样品-KIA MOS管
  11. 如何用idftp遍历整个目录----下载、删除_delphi教程
  12. C# 创建桌面快捷方式
  13. HtmlHelper用法大全(上)
  14. 食用卵磷脂市场现状及未来发展趋势
  15. 刻在祁连山上的艺术二维码,真的太酷了11
  16. 农商银行招聘计算机人员考什么,农商银行招聘考试考什么内容
  17. 《阿里巴巴开发规范》读书笔记重点
  18. 小程序开发API之获取系统信息wx.getSystemInfo()、wx.getSystemInfoSync()
  19. 编程之旅-Day13
  20. 指针变量访问指向变量

热门文章

  1. eq值 推荐算法_C++实现十种排序算法
  2. 基于java Springboot实现课程评分系统设计和实现
  3. 基于java(springboot+mybatis)网上音乐商城设计和实现以及论文报告
  4. mysql linux改密码忘记了怎么办_linux上mysql改密码忘了怎么办?
  5. linux系统下定时备份,在Linux系统中简单地实现定时备份的方法 -电脑资料
  6. 监控视图 oracle,Oracle“并行执行”之四——监控视图
  7. java周期_java 周期时期计算
  8. python正向切片_使Python切片正常(正/正向+无无+无负索引+在边界内)
  9. 从RedisTemplate中获得Jedis实例
  10. Java中Error和Exception的异同