配置通知处理(notification handlers)
注意:在创建一个引导任务(bootstrap job)或者通知任务(notification job)前请确保通知处理(notification handler)被正确的配置
在使用OMA客户端供给任务(OMA Client Provisioning job )、引导任务(bootstrap job)、文本信息测试任务(text SMS job)或者通知任务(notification job)时,你可以开启设备管理器(Device Manager)的通知处理(notification handlers)。通知处理(notification handlers)在任务被设备提交后触发。
设备管理器(Device Manager)支持下面几种通知处理(notification handlers)。
详见原文
当时用Generic HTTP POST通知处理(notification handler)时,通知(notification)通过设备管理服务器(Device Manager server)的HTTP协议发送。
Generic HTTP POST通知处理(notification handler)在发送的时候使用一些参数,它发送信息的的URL是由用户自己指定的。也就是说Generic HTTP POST通知处理(notification handler)可以定制短信的发送环境。
URL 必须是在设备管理服务器(Device Manager server)上是可以访问到的类似下面的样子:
http://host_name:port/name
当发送给这个URL的时候,会包含如下字符串:
HTTP header "Context-Type"="application/x-www-form-urlencoded;charset=UTF-8"
Generic HTTP POST的参数会以“?”开始,并追加到URL上。多个keyword=value对以“&”分隔。就像这样:
http://myHost:8080/myServlet?keyword1=value1&keyword2=value2and so on
下面是Generic HTTP POST里面使用的关键字:
phonenum
URL 编码的电话号码。电话号码必须是国际标准格式。
data
发送到URL的数据。
type
数据类型。可用的有:
dcs
发送到URL的dcs数据。dcs关键字是可选的并且仅当type="binary"时候可用。它的值通常是04.
udh
发送到URL的udh数据。udh关键字是可选的并且仅当type="binary"的时候可用。
如果URL返回HTTP_OK或者HTTP_NO_CONTENT,那么就可以认定Generic HTTP POST发送成功。
Generic HTTP POST传输的到URL后可以使用任何你想用的途径来给OMA DM发送通知(notification)或引导(bootstrap)。一些数据可能需要条短信息才能发送出去。Generic HTTP POST的URL服务器方负责把数据分成多条短信息。
Generic HTTP POST通知处理(notification handler)对以下设备可用:
详见原文
你可以通过Web服务器来设置通知事件(event notification)属性。下面是代码示例:
Hashtable notifAttribs = new Hashtable();notifAttribs.put("DIALING_NUMBER","+19195551212");notifAttribs.put("USERPIN","123456");device1.setDeviceNotificationAttributes(notifAttribs);device.setDeviceNotificationType("WAPPushv12");
下面的代码示例是确保任务通知是打开状态:
job.setSendNotification("T");
下面的代码示例是查询一个基于MSISDN的设备:
//-----------------------------------// Find a device base on MSISDN//-----------------------------------q = new Query();qc = new QueryClause();qc.setAttribute("NOTIFICATION.DIALING_NUMBER");qc.setOperator(ClientAPIConstants.EQUAL);qc.setValue(msisdn);q.setQueryClause(qc);
通知管理器里面的通知存储在设备管理数据库(Device Manager database)里的任务通知表里。如下两种情形会在表里新增记录:目标设备激活了任务,并且该任务在设备管理器面板(Device Manager console)里勾选了通知复选框;使用护理应用(Care applications),设备管理器管理API(Administration API),设备管理器管理命令(Administration commands)提交任务时选中了通知。一旦任务的状态从激活状态改变时,任务通知记录在任务通知表里被移除。
例如,如果一个任务是被10,000个设备创建的并且任务有“等待任务被选中”的通知,那么对于这个任务将会有1000个记录添加到通知表里。由于这些设备通常不会连接着网络,一个激活任务的通知几天才发送给设备一次。
注意:发送给设备的激活任务通知的频率不能改变。通知的频率在任务被设备管理器安装注册的时候就设定好了。
支持任务通知的任务的通知周期和发送给设备的最大通知数的列表:
为了管理设备管理服务器发来的一定数量的通知以便它显示时不受影响,在web.xml文件(在Troubleshooting 主题里谈到过)里有一个参数,这个参数可以定义刷新周期和通知的任务的数量。
deviceJobNotificationPollInterval
设置任务通知的刷新频率。默认是60(秒)。使用默认值,任务通知一分钟发送一次。
deviceJobNotificationPollNumberOfJobs
设置任务通知的数量。任务通知是从通知管理表中读取的。默认是1000个任务(每次)。
理想状态下,通知管理器应该可以发送比设备管理器可以处理的更多的任务通知。